Mysql 删除两列中都不存在的记录
我需要从ent表中删除在ent\U id或ent\U id\U val表值中的 耳鼻喉科 价值观 ent\u id可以在值表中的ent\u id和ent\u id\u val的任一列中。 在上面的示例中,我希望删除记录ent_id=3。 下面是我的尝试,它确实删除了一些,但我想知道为什么它不完全删除所有?我在ent表中仍有记录,但未在value表中使用Mysql 删除两列中都不存在的记录,mysql,Mysql,我需要从ent表中删除在ent\U id或ent\U id\U val表值中的 耳鼻喉科 价值观 ent\u id可以在值表中的ent\u id和ent\u id\u val的任一列中。 在上面的示例中,我希望删除记录ent_id=3。 下面是我的尝试,它确实删除了一些,但我想知道为什么它不完全删除所有?我在ent表中仍有记录,但未在value表中使用 DELETE e.* FROM ent e LEFT JOIN value v1 on e.ent_id = v1.ent_id LEFT
DELETE e.*
FROM ent e
LEFT JOIN value v1 on e.ent_id = v1.ent_id
LEFT JOIN value v2 on v2.ent_id_val = e.ent_id
WHERE v1.ent_id is null and v2.ent_id_val is null
desc值代码>请?谢谢
+--------+------------+
| ent_id | ent_id_val |
+--------+------------+
| 1 | NULL |
| NULL | 2 |
+--------+------------+
DELETE e.*
FROM ent e
LEFT JOIN value v1 on e.ent_id = v1.ent_id
LEFT JOIN value v2 on v2.ent_id_val = e.ent_id
WHERE v1.ent_id is null and v2.ent_id_val is null
DELETE a
FROM ent a
LEFT JOIN value b
ON a.ent_ID = b.ent_ID
LEFT JOIN value c
ON a.ent_ID = c.ent_id_val
WHERE b.ent_ID IS NULL AND c.ent_id_val IS NULL;
DELETE a FROM ent a
LEFT JOIN
(
SELECT ent_ID FROM value
UNION
SELECT ent_id_val AS ent_ID FROM value
) b ON a.ent_ID = b.ent_ID
WHERE b.ent_ID IS NULL