好的我有两张桌子。
一个表名为Persons,只有Pname和Age列。 (一个人的姓名和年龄)。 另一张桌子叫做Giving,有捐赠者,接收者和礼物名。 (捐赠者和接收者具有引用persons.pname的外键约束)。
我需要找到向不同年龄的人捐赠礼物的所有人的姓名。
答案 0 :(得分:1)
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
答案 1 :(得分:0)
如果你的意思是捐赠者的年龄必须与接受者年龄不同,那么试试这个:
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