我有一个表X,其中有一个由parent_id
属性处理的自身的一对多父子关系。
| id | parent_id | type |
|----|-----------|------|
| 1 | - | A |
| 2 | - | A |
| 3 | - | A |
| 4 | 1 | B |
| 5 | 1 | C |
| 6 | 2 | B |
| 7 | 3 | C |
我想获得A类的所有行,它们不具有类型B的任何子行。获取这些行的SQL查询是什么?
答案 0 :(得分:2)
SELECT
*
FROM
x AS t1
WHERE
t1.type = 'a'
AND 0 = (SELECT
COUNT(*)
FROM
x AS t2
WHERE
t2.id_parent = t1.id AND t2.type = 'b')