在Mysql中使用JOIN从多个表中删除行

时间:2015-04-14 05:01:14

标签: mysql

我知道这里有十几个问题,但我有具体的问题,我没有解决

我有两张表user_bookmarkshighlights

user_bookmarks包含所有用户书签,highlights包含特定书签的选定文字。

假设两个用户具有相同的书签,并且都做了一些高亮文本。

现在user_bookmarkshighlight表包含两行相同的bokkmark_id

如果一个用户删除该书签,则只会从两个表中删除一行。

我做了一些query但没有成功。

这是我的查询

 DELETE FROM user_bookmarks,highlights USING user_bookmarks
 LEFT JOIN highlights ON user_bookmarks.bookmark_id =
 highlights.bookmark_id WHERE user_bookmarks.`user_id` = 39 
 AND user_bookmarks.`bookmark_id`= 1556

1 个答案:

答案 0 :(得分:1)

在我看来,根据您的逻辑(在评论中),您需要使用复合键user_id,bookmark_id

来连接表格
 DELETE user_bookmarks,highlights  FROM user_bookmarks
 LEFT JOIN highlights ON 
 user_bookmarks.bookmark_id =  highlights.bookmark_id and 
 user_bookmarks.user_id =  highlights.user_id 
WHERE user_bookmarks.user_id = 39 
 AND user_bookmarks.`bookmark_id`= 1556

从两个表中删除user_id = 39和bookmark_id = 1556的所有行中的行

从多个单元

删除行,将所有表格放入delete部分