[英]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.