1

WITHT-SQLを使用して階層クエリを作成しようとしています。私がやりたいことは、たとえば、ジョンが直接または間接的にライアンのボスであるかどうかを調べることです。

これに対するクエリを作成するにはどうすればよいですか?

4

1 に答える 1

2
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'
于 2013-02-06T17:24:25.823 に答える