SQLサーバーに次のテーブルがあります
(id,name,parentId)
(1,nilesh,NULL)
(2,nikhil,1)
(3,nitin ,2)
(4,Ruchi,3)
(5,xx,NULL)
(6,YY,5)
(7,ZZ,6)
各グループの最後の子供を見つけたい
result: (4,Ruchi,3),(7,ZZ,6)
どうやってするの?
SQLサーバーに次のテーブルがあります
(id,name,parentId)
(1,nilesh,NULL)
(2,nikhil,1)
(3,nitin ,2)
(4,Ruchi,3)
(5,xx,NULL)
(6,YY,5)
(7,ZZ,6)
各グループの最後の子供を見つけたい
result: (4,Ruchi,3),(7,ZZ,6)
どうやってするの?
SELECT *
FROM mytable m
WHERE NOT EXISTS
(
SELECT NULL
FROM mytable mc
WHERE mc.parentId = m.id
)
チェック中:
WITH mytable AS
(
SELECT *
FROM (
VALUES
(1,'nilesh',NULL),
(2,'nikhil',1),
(3,'nitin' ,2),
(4,'Ruchi',3),
(5,'xx',NULL),
(6,'YY',5),
(7,'ZZ',6)
) q (id, name, parentId)
)
SELECT *
FROM mytable m
WHERE NOT EXISTS
(
SELECT NULL
FROM mytable mc
WHERE mc.parentId = m.id
)
---
4 Ruchi 3
7 ZZ 6