例如我说:
+-------------+-----------+-------------+--------+
| module | module_id | document_no | status |
+-------------+-----------+-------------+--------+
| demographic | -1 | 1237 | A |
| demographic | 475 | 1237 | A |
+-------------+-----------+-------------+--------+
想象一下,有成千上万的document_no实例,其中有些实例只有" -1"有些人的module_id不是-1,也不是" -1"。如何使用" -1"的module_id删除所有行?当它不是该document_no的唯一module_id时?
答案 0 :(得分:3)
使用子查询加入表,该子查询返回包含另一个module_id
的所有文档编号。
DELETE t1
FROM yourTable AS t1
JOIN (SELECT DISTINCT document_no
FROM yourTable
WHERE module_id != -1) AS t2
ON t1.document_no = t2.document_no
WHERE t1.module_id = -1