好的,我有两张桌子。
一张表称为 Persons,只有列 Pname 和 Age。(一个人的名字和他们的年龄)。另一个表名为 Giving,其中包含捐赠者、接收者和礼物名称。(捐助者和接收者具有引用 people.pname 的外键约束)。
我需要找到所有向不同年龄的人捐赠礼物的人的姓名。
好的,我有两张桌子。
一张表称为 Persons,只有列 Pname 和 Age。(一个人的名字和他们的年龄)。另一个表名为 Giving,其中包含捐赠者、接收者和礼物名称。(捐助者和接收者具有引用 people.pname 的外键约束)。
我需要找到所有向不同年龄的人捐赠礼物的人的姓名。
SELECT
Giving.donor
FROM Giving
INNER JOIN Persons AS donor ON Giving.donor=donor.Pname
INNER JOIN Persons AS receiver ON Giving.receiver=receiver.Pname
WHERE donor.Age<>receiver.Age
如果您的意思是捐赠者年龄必须与接受者年龄不同,请尝试以下操作:
SELECT pd.pname
FROM Persons pd
INNER JOIN giving g
ON pd.pname = g.donor
INNER JOIN persons pr
ON pr.pname = g.receiver AND pr.age != pd.age