簡體   English   中英

從基於INNER JOIN的SELECT查詢的表中刪除

[英]DELETE from table based on SELECT query with INNER JOIN

我想基於從其他查詢中獲得的記錄刪除一些記錄。 問題是我有無法解決的語法錯誤。

這是我正在使用的查詢:

DELETE FROM `tickets` as c 
WHERE c.TICKET_ID IN ( SELECT a.TICKET_ID 
FROM `tickets` as a 
INNER JOIN `old_tickets` as b 
ON b.TICKET_ID = a.TICKET_ID);

為什么需要IN子句,只需將join設置為

delete c from tickets c
join old_tickets oc on oc.TICKET_ID = c.TICKET_ID

嘗試這個

DELETE FROM tickets as a 
INNER JOIN old_tickets as b ON b.TICKET_ID = a.TICKET_ID

無論如何,您都必須在子查詢中刪除Join,因為您要從ticket1中檢查在old_tickets表中具有匹配項的所有TICKET_ID。

這樣您的查詢將變為:

DELETE FROM tickets t1
 WHERE t1.TICKET_ID IN (SELECT t2.TICKET_ID
                        FROM old_tickets t2)

暫無
暫無

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

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