mysql - 根据日期从多个表中删除
问题描述
我正在尝试从 3 个表中删除具有相同 ID 的记录。这些表是这样的:
Table1
+----------+----------------+-----------+---------+----------+
| commonid | creation_date | column 1 | column 2| column 3 |
+----------+----------------+-----------+---------+----------+
Table2
+----------+---------+----------+---------+----------+
| commonid | column 1| column 2 | column 3| column 4 |
+----------+---------+----------+---------+----------+
Table3
+----------+---------+----------+---------+----------+
| commonid | column 1| column 2 | column 3| column 4 |
+----------+---------+----------+---------+----------+
所以要选择我正在使用的所有数据
SELECT * FROM table1
INNER JOIN table2
ON table1.commonid = table2.commonid
INNER JOIN table3
ON table1.commonid = table3.commonid
WHERE creation_date = '2018-08-01 04:13:50'
这将返回 6 行。要删除我会尝试:
DELETE table1 FROM table1
INNER JOIN table2
ON table1.commonid = table2.commonid
INNER JOIN table3
ON table1.commonid = table3.commonid
WHERE creation_date = '2018-08-01 04:13:50'
它返回受影响的 1 行,我本来期望 6。当我再次运行第一个查询时,我得到 0 个结果。表 3 的总行数不受影响。
如何commonid
从每个表中删除相同的行?
解决方案
您需要将所有三个表指定为删除目标:
DELETE t1, t2, t3
FROM table1 t1
INNER JOIN table2 t2
ON t1.commonid = t2.commonid
INNER JOIN table3 t3
ON t1.commonid = t3.commonid
WHERE
creation_date = '2018-08-01 04:13:50';
目前,您只是告诉 MySQL 从table1
.
推荐阅读
- haskell - 为什么这种类型不检查?
- python-3.x - plt.subplot_adjust() not working correctly
- eviews - 自相关和异方差 - Eviews
- java - 与多个参数的接口
- sockets - Linux:检查传入的 UDP 数据报
- c# - 如何避免在 ASP.NET MVC 中硬编码资源路径
- javascript - VS代码中的伪元素抛出语法错误
- python - 保护/清理不受信任的客户端对服务器的远程调用
- javascript - PHP JavaScript 客户端 WebSocket 无法接收超过 125 个字节的数据
- jquery - Bootstrap:展开时折叠其他人