使用连接更新选择不起作用

时间:2018-04-19 03:15:44

标签: mysql sql sql-update

update tableA 
set tableA.col3 = col2 
from (select tableA.col1, tableB.col2 from 
tableA inner join tableB on tableA.col1=tableB.col4 and 
tableA.col3!=tableB.col2 limit 10)  
where tableA.col1 = col1;
  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近'从(选择......

以上更新有什么问题,但是在select语句下工作正常

select tableA.col1, tableB.col2 
from tableA 
inner join tableB on tableA.col1=tableB.col4 
    and tableA.col3!=tableB.col2 limit 10

2 个答案:

答案 0 :(得分:0)

这里有一些遗漏的别名

update tableA set tableA.col3=col2

应该是

update tableA set tableA.col3= tableB.col2

在这里

where tableA.col1=col1;

应该是

where tableA.col1 = tableB.col1;

答案 1 :(得分:0)

试试这个:

if(isset($array_name) && !empty($array_name))
{
//not empty
}

使用UPDATE tableA INNER JOIN tableB ON tableA.col1=tableB.col4 AND tableA.col3!=tableB.col2 SET tableA.col3 = tableB.col2; 查询因为我不清楚你想如何更新tableA。

SELECT
UPDATE tableA INNER JOIN ( select tableA.col1, tableB.col2 from tableA inner join tableB on tableA.col1=tableB.col4 and tableA.col3!=tableB.col2 limit 10 ) AS t ON tableA.col1 = t.col1 SET tableA.col3 = t.col2 UPDATE

常规语法

JOIN