mysql - [SQL]如何使用 LEFT JOIN 和 DELETE 删除连接表列上所有包含 NULL 值的行
问题描述
我试图摆脱与另一张表无关的每一行。
这是我尝试过的:
DELETE obj FROM objednavky obj
LEFT JOIN polozky_objednavek poObj
ON poObj.objednavka_id = obj.id
WHERE poObj.objednavka_id = null
解决方案
DELETE 只在一张表上工作,所以它不应该被加入。不过,您可以在 WHERE 子句中使用另一个表,如下所示:
DELETE FROM objednavky obj
WHERE( SELECT objednavka_id FROM polozky_objednavek WHERE objednavka_id=objednavky.id) IS NULL
如果您手动执行此操作,我建议先运行 SELECT 子句(或至少一个 COUNT 变体)以检查您不会意外清除整个表。
推荐阅读
- html - spring如何用thymeleaf添加静态资源
- cups - 有没有办法选择使用 cupsfilter 从 txt 文件创建的 pdf 的宽度
- sql-server - 从命令行使用代理帐户执行 SSIS 包
- c++ - 从 double* 转换为 int 会失去精度
- c++ - 如何在构造函数中使用 std::optional ?
- javascript - 我可以在不使用 FileReader 文件选择选项的情况下读取文本文件吗
- java - 平面文件解析:当某些字段包含分隔符时
- elasticsearch - 使用 ONGR ES-Bundle 运行“composer update”时出错
- css - 如何停止:将标签文本向右推的元素之前
- boto3 - 通过boto3获取账户名?