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