MySQL更新多个连接不工作

MySQL更新多个连接不工作,mysql,sql,sql-update,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是否支持使用嵌套联接的更新查询?我想说,您的查询应该可以工作。然而,也许MySQL不喜欢第二行的连接条件与表1没有什么关系 UPDATE ta

我正在尝试使用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是否支持使用嵌套联接的更新查询?

我想说,您的查询应该可以工作。然而,也许MySQL不喜欢第二行的连接条件与表1没有什么关系

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
下面的方法有效吗

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

我很想说,你的问题应该行得通。然而,也许MySQL不喜欢第二行的连接条件与表1没有什么关系

下面的方法有效吗

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

我很想说,你的问题应该行得通。然而,也许MySQL不喜欢第二行的连接条件与表1没有什么关系

下面的方法有效吗

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

我很想说,你的问题应该行得通。然而,也许MySQL不喜欢第二行的连接条件与表1没有什么关系

下面的方法有效吗

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

用这种方式编写查询会更常见

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;

用这种方式编写查询会更常见

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;

用这种方式编写查询会更常见

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;

用这种方式编写查询会更常见

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;


它不更新匹配行它不更新匹配行它不更新匹配行它不更新匹配行你应该做一个注释,
集合
必须跟在目标表后面。它抛出语法错误,如“1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解使用“内部联接表2”附近的正确语法“更新T1集合T1.value=T3.value,从T2上的表1 T1内部联接表2 T2.id=10内部联接表3 T3.category\u id=T2.category\u id,其中T1.id=T3。id@loganphp你能给我提供SQLFIDLE吗,这样我就可以检查问题了。你应该做一个注释,说明
集合
必须跟在目标表后面。它会抛出语法错误,如“1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解使用“内部联接表2”附近的正确语法“更新T1集合T1.value=T3.value,从T2上的表1 T1内部联接表2 T2.id=10内部联接表3 T3.category\u id=T2.category\u id,其中T1.id=T3。id@loganphp你能给我提供SQLFIDLE吗,这样我就可以检查问题了。你应该做一个注释,说明
集合
必须跟在目标表后面。它会抛出语法错误,如“1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解使用“内部联接表2”附近的正确语法“更新T1集合T1.value=T3.value,从T2上的表1 T1内部联接表2 T2.id=10内部联接表3 T3.category\u id=T2.category\u id,其中T1.id=T3。id@loganphp你能给我提供SQLFIDLE吗,这样我就可以检查问题了。你应该做一个注释,说明
集合
必须跟在目标表后面。它会抛出语法错误,如“1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解使用“内部联接表2”附近的正确语法“更新T1集合T1.value=T3.value,从T2上的表1 T1内部联接表2 T2.id=10内部联接表3 T3.category\u id=T2.category\u id,其中T1.id=T3。id@loganphp你能提供SQLFIDLE给我吗?这样我就可以检查问题了。对不起@Kévin,没有看到你回答对不起@Kévin,没有看到你回答对不起@Kévin,没看到你回答抱歉@Kévin,没看到你回答