簡體   English   中英

在MySQL中使用JOIN從多個表中刪除行

[英]DELETE rows from multiple tables with JOIN in 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

我認為,根據您的邏輯(在注釋中),您需要使用合成鍵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部分

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM