我嘗試使用下面的代碼JOIN
我的MySQL表,TableA
和TableB
,當兩個他們owner
和pos
列相匹配,在匹配記錄設置的val
TableA
到TableB
的val
:更新MySQL表使用JOIN當兩個值匹配
UPDATE TableA A
JOIN TableB B
ON A.owner = B.owner AND A.pos = B.pos
SET A.val = B.val
TableA中有大約10萬條記錄和表B有大約10000只應有一個owner
/pos
比賽中的每個表。
當我執行這個查詢時,所有東西都掛起來,最後我不得不中止執行。有沒有我在語法上或其他方面缺少的東西來獲得我想要的結果?
編輯:
我也曾嘗試以下;結果是相同的:
UPDATE TableA
JOIN TableB
ON TableA.owner = TableB.owner AND TableA.pos = TableB.pos
SET TableA.val = TableB.val
前面加上'EXPLAIN'到查詢,看看MySQL不得不說。在此處發佈結果:) –
使用'EXPLAIN'輸出是:您的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在'UPDATE TableA A JOIN TableB B ON 2 A.owner = B.owner'在第2行使用正確的語法 – amoeba
您可以選擇連接嗎? 'SELECT * FROM TableA A INNER JOIN Table B B ON TableA.owner = TableB.owner AND TableA.pos = TableB.pos' – Pachonk