sql - ERD 和 SQL 查询帮助?

标签 sql mysql oracle postgresql erd

你能告诉我这样做是否正确,或者我是否需要改进其中的一些,当存在关联实体时,我很难理解查询。

ERD

列出所有捐赠者

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/

相关文章:

sql-server - Oracle 到 SQL Server 迁移验证

sql - 为 1 个表上的每条记录选择前 1 条记录

sql - C#/SQL 开发人员的顶级工具

mysql - 按降序排除重复项的行总和

mysql - 尝试在 for 循环内连续向 lucene 索引添加文档时抛出异常

php - 现有电子商务解决方案 VS 定制构建

php - CodeIgniter 从传递单行到传递多行

oracle - 从 PLSQL 中的表派生函数

c# - 如何从 .Net Core 连接到 Oracle 数据库连接

sql - float(0) SQL 数据类型有效吗?