我一直在嘗試更新SELECT查詢後面的數據,但沒有太多,所以我創建了一個新數據庫,希望找到一個解決方案。使用SELECT查詢更新數據(有兩個相關的表)
我有兩個表:
table_a
和table_b
table_a:
ID, item_to_match, new_value *(this is initially blank)*
table_b:
IDB, item_to_match, new_value *(the value I want to get into table_a)*
不知怎的,我想在表-A更新new_value
與new_value
從表-B - 但我似乎無法得到它(我是新對此)。
我試着創建一個UPDATE查詢,但只允許我顯示兩個表中的一個。所以我試圖創建一個主查詢(稱爲main
),認爲我可以創建一個UPDATE查詢 - 但我無法讓它工作。這裏是語法:
SELECT
`table_a`.`new_value` AS `goingto`,
`table_b`.`new_value` AS `takenfrom`
FROM (`table_a`
JOIN `table_b`
ON ((`table_a`.`item_to_match` = `table_b`.`item_to_match`)))
我真的,真的很感激更多的指導如何做到這一點(抱歉繼續問)。
我現在已經嘗試了三種變化,並不斷收到相同的錯誤消息。但這裏的變化:
UPDATE table_a, table_b
SET table_a.new_value = table_b.new_value
WHERE table_a.item_to_match = table_b.item_to_match
UPDATE table_a a
INNER JOIN table_b b ON a.item_to_match = b.item_to_match
SET a.new_value = b.new_value
UPDATE table_a a,table_b b
SET a.new_value = b.new_value
WHERE a.item_to_match = b.item_to_match
領域item_to_match
是不是主鍵或索引(僅供參考)...
到底什麼是我做錯了什麼???
我也只是嘗試:
UPDATE table_a a
JOIN table_b b
ON a.item_to_match = b.item_to_match
SET a.new_value = b.new_value
的語法是正確的....我做錯事的應用程序本身?
感謝Raheel--但我一直遇到同樣的錯誤,」你的SQL語法有錯誤;查看與你的MySQL服務器版本相對應的手冊,在正確的語法附近使用'UPDATE table_a a「new line」 INNER_JOIN table_b b ON a.item_to_match = b.item_to_match「在第5行的新行」S「 – AndyDB
嘗試使用別名 –