我有两个表格,一个用于工作截止日期,一个用于描述工作。每个工作都可以采取一种状态,一些状态意味着工作的最后期限必须从另一个表中删除。使用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