如何在UPDATE语句中连接两个表?

Pr0*_*0no 8 mysql sql

请考虑以下表格:"用户"和"推文"

user_id name             tweet_id user_id tweet        spam
-----------------        ----------------------------------
1       SUSPENDED        1        1       lorem ipsum  0
2       foo              2        1       dolor        0
3       bar              3        2       samet        0
4       SUSPENDED        4        1       stunitas     0
                         5        3       hello        0
                         6        4       spamzz!      0
Run Code Online (Sandbox Code Playgroud)

我想通过将SUSPENDED用户发布的所有推文标记为垃圾邮件来更新"推文"表.因此,在上面的示例中,通过将"垃圾邮件"值从0更新为1,将tweet_id 1,2,4和6的推文标记为垃圾邮件.

我加入这两张桌子时遇到了麻烦.到现在为止,我只需要加入SELECT语句,但这似乎更麻烦:

UPDATE tweets SET spam = 1 WHERE tweets.user_id = users.user_id 
AND users.name = 'SUSPENDED'
Run Code Online (Sandbox Code Playgroud)

这肯定是行不通的......谁能指出我正确的方向?

Mic*_*ski 25

你是在正确的轨道上,但你需要JOIN在表之间指定:

UPDATE tweets JOIN users ON tweets.user_id = users.user_id
  SET tweets.spam = 1
WHERE users.name = 'SUSPENDED'
Run Code Online (Sandbox Code Playgroud)