我有兩個表格,一個用於工作截止日期,一個用於描述工作。每個工作都可以採取一種狀態,一些狀態意味着工作的最後期限必須從另一個表中刪除。使用MySQL LEFT JOIN刪除行
我可以很容易地SELECT
符合我的標準與LEFT JOIN
作業/截止日期:
SELECT * FROM `deadline`
LEFT JOIN `job` ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = 'szallitva'
OR `status` = 'storno'
(status
屬於job
表中未deadline
)
但是,當我想刪除這些行從deadline
,MySQL會引發錯誤。我的查詢是:
DELETE FROM `deadline`
LEFT JOIN `job`
ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = 'szallitva'
OR `status` = 'storno'
MySQL錯誤說什麼:
你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法使用手動附近「LEFT JOIN
job
ON deadline.job_id = job.job_id WHEREstatus
=‘szaml’在行1
如何我把我SELECT
進入工作DELETE
查詢?
同時使用「('szamlazva','szamlazhato','fizetve',.........)中的狀態」 – Salil 2010-05-04 06:31:12
使用「AS」時,我不得不在我的子句中使用別名以使其適用於我目的(刪除孤兒):DELETE T1 FROM表1爲T1 LEFT JOIN T2爲T2 ON t1.uid = t2.result WHERE t2.result IS NULL – Urs 2013-08-26 18:19:08
參考:http://dev.mysql.com/doc/ refman/5.7/en/delete.html – Slawa 2013-10-24 13:27:31