你能告诉我这样做是否正确,或者我是否需要改进其中的一些,当存在关联实体时,我很难理解查询。
列出所有捐赠者
SELECT* from Donor;
列出所有捐赠者的名字和姓氏
SELECT dfname, dlname
FROM donor
列出捐赠者的电话号码 106 和 125
SELECT dphone
FROM DONOR
WHERE dphone = “106”
AND dphone = “125”;
列出每个捐赠者每年捐赠的金额
SELECT year
FROM YEAR IN (
SELECT donor, amount
FROM GIFT);
列出每年捐款的捐助者
SELECT dfname, dlname
FROM DONOR
WHERE IN( SELECT * FROM
YEAR)
AND amount != null;
列出居住在佐治亚州或北卡罗来纳州的捐赠者姓名
SELECT dfname, dlname
FROM donor
WHERE state = “GA”
OR state = “NC”;
列出姓 Williams 且居住在佐治亚州雅典的捐助者姓名
SELECT dfname, dlname
FROM donor
WHERE dlname = “Williams”
AND city = “Athens”
AND state = “GA”;
我要感谢所有提供帮助的人,我希望我能给每个人一个绿色的复选标记,因为输入的所有答案都提供了解决方案。感谢您的帮助,也许有一天我可以为您将来可能遇到的问题做出贡献。
最佳答案
每年捐款的捐助者(警告:未经测试):
SELECT dfname, dlname
FROM DONOR
WHERE NOT EXISTS
(SELECT * FROM YEAR WHERE NOT EXISTS
(SELECT * FROM GIFT WHERE year = YEAR.year AND donor = DONOR.donor));
(假设 GIFT 中的一行表示进行了捐赠,即该金额始终 > 0)
关于sql - ERD 和 SQL 查询帮助?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3425635/