简单的SQL问题,消除公共属性的歧义



我有一个表Person的数据库,具有属性ID, NameAge。我还有一个表WorksFor,具有属性ID1ID2,其中ID1 适用于 ID2

我想列出所有为比自己年轻至少两岁的人工作的人的名字。我该怎么做呢?

假设ID1 WorksFor ID2…

SELECT DISTINCT
   CubeRat.ID,
   CubeRat.Name,
   CubeRat.Age
FROM
   WorksFor W
   INNER JOIN PERSON Boss ON W.ID2 = Boss.ID
   INNER JOIN PERSON CubeRat ON W.ID1 = CubeRat.ID
WHERE
   CubeRat.Age >= (Boss.Age + 2)

假设id1和id2是一个表中的字段,其中id1是经理id, id2是工作id

SELECT p.name 
FROM Person p
WHERE p.age > ((PRIOR p.age) - 2)
START WITH p.id2 = *sombody's id*
CONNECT BY p.id1 = PRIOR p.id2

甲骨文符号