使用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最后期限附近使用。job_id=job.job_id WHERE
status
=’szaml’在第1行
如何将我SELECT
的DELETE
查询变成有效的查询?
回答:
您只需要指定要在哪些表上应用DELETE
。
仅删除deadline
行:
DELETE `deadline` FROM `deadline` LEFT JOIN `job` ....
删除deadline
和job
行:
DELETE `deadline`, `job` FROM `deadline` LEFT JOIN `job` ....
仅删除job
行:
DELETE `job` FROM `deadline` LEFT JOIN `job` ....
以上是 使用MySQL LEFT JOIN删除行 的全部内容, 来源链接: utcz.com/qa/422744.html