首页 >数据库 >mysql教程 >如何在 MySQL DELETE 查询中使用 LEFT JOIN 删除行?

如何在 MySQL DELETE 查询中使用 LEFT JOIN 删除行?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-30 09:07:15500浏览

How to Delete Rows Using LEFT JOIN in MySQL DELETE Queries?

在 MySQL 中使用 LEFT JOIN 删除截止日期

在管理存储在两个表中的作业截止日期和作业描述时,您遇到了困难基于 LEFT JOIN 查询删除行。要解决此问题,了解使用 LEFT JOIN 执行 DELETE 查询的正确语法至关重要。

LEFT JOIN 语句使您能够从“左”表(在本例中为截止日期)中选择行并包含匹配的行基于连接条件的“右”表(在本例中为作业)中的行。但是,使用 LEFT JOIN 删除行需要对查询语法进行细微的更改。

要根据与作业表的 LEFT JOIN 成功从截止日期表中删除行,您需要显式指定从中删除行的表。行将被删除。以下是可能的变体:

仅删除截止日期行

如果您只想删除截止日期行,则应按如下方式修改查询:

DELETE `deadline` 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';

在此查询中,DELETE Deadline FROM 指定您要从截止日期表中删除行。 LEFT JOIN 用于根据作业表的状态列过滤行。

删除截止日期和作业行

如果您想同时删除截止日期和作业基于 LEFT JOIN 标准的行,您应该使用以下内容查询:

DELETE `deadline`, `job` 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';

此处,DELETE Deadline, job FROM 指定要从截止日期和作业表中删除行。

仅删除作业行

如果您只想删除作业行,但保留截止日期行,您应该使用以下命令查询:

DELETE `job` 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';

请务必记住,DELETE 语句中表名的顺序会影响将删除哪些行。

以上是如何在 MySQL DELETE 查询中使用 LEFT JOIN 删除行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn