在常見的sql中,我們經常在查詢中進行多表關聯查詢,用的比較熟練。今天在開發中遇到一個實際業務場景是多表關聯更新,一時不知所措。本着多學習的態度,沒有直接寫java代碼去實現,終於把多表關聯更新的sql弄清楚了。下面將實際業務場景進行簡化,分別有person表和information表,最終目的是將 information表中的年齡更新到person表中的每個人的年齡。分別寫了幾個sql demo來把多表更新的知識理解透徹。
首先,在更新前,person表和information表分別如下:
information表
person表
1. CASE1
sql :update information,person SET information.phone='13812345678',person.age = '18' WHERE information.name = person.name
更新后的information表和person表分別如下
當然,還有一種方式可以實現上面的功能
sql:UPDATE information JOIN person on information.name = person.name SET information.phone='13811111111',person.age = '18'
或者是
sql:UPDATE information LEFT JOIN person on information.name = person.name SET information.phone='13811111111',person.age = '18'
2. CASE2
sql:UPDATE information RIGHT JOIN person on information.name = person.name SET information.phone='13922222222',person.age = '19'
更新后的information表和person表分別如下
3. CASE3
sql: UPDATE information JOIN person on information.name = person.name SET information.age=person.age
通過上述幾個例子,相信關於多條關聯更新的分析應該是比較透徹了。多學習,多成長。