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

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

Mary-Kate Olsen
发布: 2024-11-30 09:07:15
原创
433 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板