0
我有一个在这里查询将返回不同轨道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从上表将用于更新另一个表(具体曲目表),因为这是从上表中检索的ID从曲目来了表。我在想这样的事情。
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)
但它似乎并没有工作。任何想法我将如何处理这个dillema? 还要注意,第一个查询查询许多人mnay表
这是工作,但可以请你在JOIN中解释一切吗? – user962206 2012-08-05 02:22:40
@ user962206尝试单独运行子查询查询并查看它产生的结果。它只产生'account'' 2'包含的'track_id'。然后,我们将这个子选择加入到'UPDATE'语句中的'tracks'表中,条件是id等于子选择中派生的id,因此我们只更新帐号'2'包含的那些音轨。 – 2012-08-05 03:42:29