繁体   English   中英

从另一个表更新一个表中的值

[英]Updating Values in one table from another table

我在这里有一个查询,它将返回不同的曲目ID

注意:我正在从另一个表查询此。

 SELECT t.track_id  FROM tracks t , account_x_track axt,accounts a WHERE axt.track_id = t.track_id AND  axt.account_id = a.id AND a.id = 2

然后我想做的是,由于从前一个表中检索到的ID来自Tracks表,因此上一个表中的所有ID将用于更新另一个表(特别是The Tracks表)。 我在想这样的事情。

UPDATE tracks 
set visible = 3
WHERE visible in( SELECT t.track_id  FROM tracks t , account_x_track axt,accounts a WHERE axt.track_id = t.track_id AND  axt.account_id = a.id AND a.id = 2 )

但这似乎不起作用。 任何想法我将如何处理这种疾病? 还要注意,第一个查询查询多于mnay表

您不能在子查询的UPDATE中引用同一表,而应使用JOIN

UPDATE tracks a
JOIN   (
       SELECT axt.track_id
       FROM   account_x_track axt
       JOIN   accounts a ON axt.account_id = a.id AND a.id = 2
       ) b ON a.track_id = b.track_id
SET    a.visible = 3

暂无
暂无

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

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