fab*_*rik 176 mysql left-join delete-row sql-delete
我有两个表,一个用于工作截止日期,一个用于描述工作.每个作业都可以处于状态,一些状态意味着必须从另一个表中删除作业的截止日期.
我可以通过以下方式轻松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'
Run Code Online (Sandbox Code Playgroud)
(不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'
Run Code Online (Sandbox Code Playgroud)
MySQL错误没有说明:
您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册,以便在第1行的'LEFT JOIN
job
ON deadline.job_id = job.job_id WHEREstatus
='szaml' 附近使用正确的语法
如何将我SELECT
变成一个有效的DELETE
查询?
Dan*_*llo 320
您只需指定要应用的表DELETE
.
仅删除deadline
行:
DELETE `deadline` FROM `deadline` LEFT JOIN `job` ....
Run Code Online (Sandbox Code Playgroud)
删除deadline
和job
行:
DELETE `deadline`, `job` FROM `deadline` LEFT JOIN `job` ....
Run Code Online (Sandbox Code Playgroud)
仅删除job
行:
DELETE `job` FROM `deadline` LEFT JOIN `job` ....
Run Code Online (Sandbox Code Playgroud)
Rom*_*sev 37
如果您使用"table as",则指定要删除.
在示例中,我删除table_2中不存在的所有table_1行.
DELETE t1 FROM `table_1` t1 LEFT JOIN `table_2` t2 ON t1.`id` = t2.`id` WHERE t2.`id` IS NULL
Run Code Online (Sandbox Code Playgroud)
这个脚本对我有用:
\nDELETE t\nFROM table t\nINNER JOIN join_table jt ON t.fk_column = jt.id\nWHERE jt.comdition_column\xe2\x80\xa6;\n
Run Code Online (Sandbox Code Playgroud)\n
DELETE FROM deadline where ID IN (
SELECT d.ID FROM `deadline` d 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');
Run Code Online (Sandbox Code Playgroud)
我不确定这种子查询是否适用于 MySQL,但请尝试一下。我假设您的截止日期表中有一个 ID 列。
尝试这个:
DELETE `deadline`
FROM `deadline`
INNER JOIN `job` ON `deadline`.`job_id` = `job`.`id`
WHERE `job`.`id` = 123
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
118951 次 |
最近记录: |