我的數據庫中有大約12個表格,列數很多。我想從他們那裏挑選我需要的信息,並將其放入具有預定義結構的新表中。所有表都有一個唯一的標識符「ID」。Mysql:使用來自多個列的值更新一列的值
newtable的結構:
ID |蘋果|香蕉|黃瓜|日期
table1的結構
ID | chiquita | grannysmith | IDontWanthis | OrThis
使用:
UPDATE newtable SET bananas = (SELECT chiquita FROM table1
WHERE newtable.ID = table1.ID)
我有困難,但是當更多的列可包含的一條信息,我需要填寫新列。
我想:
UPDATE newtable SET apples = (SELECT grannysmith FROM table1
WHERE newtable.ID = table1.ID)
,然後一個新的更新:
UPDATE newtable SET apples = (SELECT elstar FROM table2
WHERE newtable.ID = table2.ID
AND newtable.apples IS NULL)
然而,取代在table2.elstar,不僅NULL值newtable.apples所有的值。先前填入的值現在爲NULL。
我對SQL很陌生,不知道自己做錯了什麼。 有沒有更有效的方法來做到這一點? 感謝您的支持!
謝謝,這是訣竅!你能否詳細說明一下?第二個「WHERE」背後的邏輯是什麼? – zufanka
原因是,外部查詢不知道哪些行要更新與'where'條件。因此你必須在外部查詢中指定'where'。 –