在嵌套查询

时间:2015-12-15 11:17:33

标签: mysql join sql-update

我尝试这样做:从表resource_id中查找itemsasset_idresource_id,并使用它来设置另一个表resource_id中的elements字段,其中还有asset_idresource_id

UPDATE t1 SET t1.resource_id = t2.resource_id 
FROM elements t1 INNER JOIN
( SELECT asset_id, resource_id 
  FROM items 
  WHERE resource_id is not null
  GROUP BY asset_id ) t2 
ON t1.asset_id = t2.asset_id; 

我收到了非常模糊的信息:

ERROR 1064 (42000): You have an error in your SQL syntax; check the 
manual that corresponds to your MySQL server version for the 
right syntax to use near 'FROM elements t1 INNER JOIN
( SELECT asset_id, resource_id 
  FROM items' at line 2

这是在MySQL 5.6.27中。谁能看到我做错了什么?

谢谢,Max

2 个答案:

答案 0 :(得分:1)

如错误所示,您的语法错误。试试这个:

UPDATE elements as t1  
INNER JOIN
( SELECT asset_id, resource_id 
  FROM items 
  WHERE resource_id is not null
  GROUP BY asset_id ) t2 
ON t1.asset_id = t2.asset_id
SET t1.resource_id = t2.resource_id 

答案 1 :(得分:1)

更新元素AS t1,
(SELECT asset_id,resource_id   来自物品   WHERE resource_id不是NULL   GROUP BY asset_id   )AS t2  SET t1.resource_id = t2.resource_id  在哪里t1.asset_id = t2.asset_id;