我有一个包含表Person
的数据库,其中包含属性ID
,Name
和Age
。我还有一个表WorksFor
,其中包含ID1
和ID2
属性,其中ID1
适用于 ID2
我想列出所有为比他们年轻至少2岁的人工作的人的姓名。我该怎么做?
答案 0 :(得分:5)
假设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)
答案 1 :(得分:-1)
假设id1和id2是一个表中的字段,其中id1 - manager的id,id2 - worker 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
Oracle表示法