MySQL UPDATE多个连接不起作用

时间:2013-10-16 13:53:45

标签: mysql sql sql-update

我正在尝试使用join进行更新查询,但它不会更新匹配的行。

UPDATE table1 T1
INNER JOIN table2 T2 ON T2.id=10
INNER JOIN table3 T3 ON T3.category_id=T2.category_id
SET T1.value=T3.value
WHERE T1.id=T3.id

MySQL是否支持使用嵌套连接的更新查询?

3 个答案:

答案 0 :(得分:2)

UPDATE table1 T1
SET T1.value=T3.value
INNER JOIN table2 T2 ON T2.id=10
INNER JOIN table3 T3 ON T3.category_id=T2.category_id
WHERE T1.id=T3.id

答案 1 :(得分:1)

我很想说你的查询应该有效。但是,MySQL可能不喜欢你的第二行的连接条件与table1几乎没有关系的事实?

以下是否有效?

UPDATE table1 T1
  INNER JOIN table3 T3 ON T3.id = T1.id
  INNER JOIN table2 T2 ON T2.category_id = T3.category_id
SET T1.value = T3.value
WHERE T2.id = 10

答案 2 :(得分:0)

通常以这种方式查看查询...

UPDATE table1 T1
  JOIN table3 T3 
    ON t3.id = t1.id
  JOIN table2 T2 
    ON T2.category_id = T3.category_id
   SET T1.value = T3.value
 WHERE T2.id=10;