我有两张 table ,一张用于工作截止日期,一张用于描述工作 . 每个作业都可以处于状态,一些状态意味着必须从另一个表中删除作业的截止日期 .
我可以轻松 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 WHERE status ='szaml'第1行附近使用正确的语法
如何将 SELECT
变成有效的 DELETE
查询?
4 回答
试试这个:
您只需指定要应用
DELETE
的表 .仅删除
deadline
行:删除
deadline
和job
行:仅删除
job
行:我不确定这种子查询是否适用于MySQL,但请尝试一下 . 我假设您在截止日期表中有一个ID列 .
如果您使用“table as”,则指定要删除 .
在示例中,我删除table_2中不存在的所有table_1行 .