我尝试使用下面的代码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