您可以像处理任何其他表格一样执行此操作:left join
表格(这次是表格本身)并检查null
(缺失的行)。
在db<>fiddle上查看
select rdb$get_context('SYSTEM', 'ENGINE_VERSION') as version
, rdb$character_set_name
from rdb$database;
版本 | RDB$CHARACTER_SET_NAME
:-------- | :------------------------------------------------ -------------------------------------------------- ----------------------
3.0.5 | UTF8
create table pool( id integer primary key, parentID integer not null)
✓
insert into pool
select 1, 1 from rdb$database union all
select 2, 1 from rdb$database union all
select 3, 3 from rdb$database union all
select 4, 3 from rdb$database union all
select 5, 5 from rdb$database union all
select 6, 5 from rdb$database union all
select 7, 7 from rdb$database
7 行受影响
select * from pool
身份证 | 家长编号
-: | --------:
1 | 1
2 | 1
3 | 3
4 | 3
5 | 5
6 | 5
7 | 7
select p1.* from pool p1
left join pool p2
on (p2.parentid = p1.parentid) and (p2.parentid <> p2.id)
where (p1.parentid = p1.id)
and (p2.id is null)
身份证 | 家长编号
-: | --------:
7 | 7
select p1.* from pool p1
left join pool p2
on (p2.parentid = p1.id) and (p2.parentid <> p2.id)
where (p1.parentid = p1.id)
and (p2.id is null)
身份证 | 家长编号
-: | --------:
7 | 7