我的表格结构如下
id |parent|value
1 | 0 | a |
2 | 1 | b |
3 | 4 | c |
4 | 0 | d |
5 | 0 | e |
我只想显示具有亲子关系的行
喜欢:
id |parent|value
1 | 0 | a |
2 | 1 | b |
3 | 4 | c |
4 | 0 | d |
这是我的代码,但是无法正常工作:
select a.id, a.parent,a.value
from myTable a inner join myTable b
on a.id = b.parent
union
select b.id, b.child,b.value
from myTable a inner join myTable b
on a.id = b.parent;
答案 0 :(得分:0)
SELECT
*
FROM
yourTable
WHERE
parent != 0
OR EXISTS (SELECT *
FROM yourTable children
WHERE chilren.parent = yourTable.id
)
第一个条件检查该行是否指向父级,第二个条件检查该行是否有任何子级。