sql select基于另一个表中的列

时间:2012-12-13 20:02:03

标签: sql

好的我有两张桌子。

一个表名为Persons,只有Pname和Age列。 (一个人的姓名和年龄)。 另一张桌子叫做Giving,有捐赠者,接收者和礼物名。 (捐赠者和接收者具有引用persons.pname的外键约束)。

我需要找到向不同年龄的人捐赠礼物的所有人的姓名。

2 个答案:

答案 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