繁体   English   中英

在嵌套查询上使用内部联接进行MySQL更新

[英]MySQL update using inner join on a nested query

我正在尝试这样做:从一个表items查找一个resource_id ,它具有asset_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中。 谁能看到我在做什么错?

谢谢,马克斯

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

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 

更新元素AS t1,
(从资源WHERE_ID不为空的GROUP BY资产ID的项目中选择SELECT资产ID,资源ID)AS t2设置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM