2015-04-02 81 views
0

我想根據從其他查詢獲得的記錄刪除一些記錄。問題是我有語法錯誤,我無法解決。根據SELECT查詢從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); 

回答

1

爲什麼你需要IN子句也可以用做只是加入成爲

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

謝謝您的幫助。你的例子正在工作。 – jureispro 2015-04-03 06:01:59

0

試試這個

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

你有刪除您的子查詢中的Join,無論如何,您正在檢查ticket1中所有具有old_tickets選項卡中的匹配的TICKET_ID樂;

使您的查詢就會變成:

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