WITH
T-SQLを使用して階層クエリを作成しようとしています。私がやりたいことは、たとえば、ジョンが直接または間接的にライアンのボスであるかどうかを調べることです。
これに対するクエリを作成するにはどうすればよいですか?
WITH
T-SQLを使用して階層クエリを作成しようとしています。私がやりたいことは、たとえば、ジョンが直接または間接的にライアンのボスであるかどうかを調べることです。
これに対するクエリを作成するにはどうすればよいですか?
WITH BossOf AS(
SELECT bossId, Id From Employees
UNION ALL
SELECT b.bossId, e.Id
FROM Employees AS e
INNER JOIN BossOf b ON b.Id = e.bossId
)
SELECT * FROM BossOf
WHERE Id = 'Ryan'
BossOfでできることの例として...
WITH BossOf AS(
SELECT bossId, Id From Employees
UNION ALL
SELECT b.bossId, e.Id
FROM Employees AS e
INNER JOIN BossOf b ON b.Id = e.bossId
)
SELECT * FROM Employees
WHERE Id IN (SELECT BossId
FROM BossOf
Where Id = 'Ryan')
あるいは
WITH BossOf AS(
SELECT bossId, Id From Employees
UNION ALL
SELECT b.bossId, e.Id
FROM Employees AS e
INNER JOIN BossOf b ON b.Id = e.bossId
)
SELECT COUNT(*) FROM BossOf
WHERE Id = 'Ryan'
AND BossId = 'John'