【发布时间】:2018-07-20 14:02:28
【问题描述】:
我在使用 SQL 时真的很吃力,只是因为我来自基于 C 的语言,所以感觉非常陌生。
我有两个 SQL 表。一个称为“人”,并拥有IDNumber INT, FirstName VARCHAR, LastName VARCHAR 的字段。另一个称为“捐赠”,具有IDNumber INT and DollarsRaised INT 的字段。捐赠 IDNumber 字段使用外键关系链接到个人 IDNumber。
我正在尝试加入表格并使用 MIN/MAX 来显示筹集的资金最多和最少的成员,但我的教科书选择使用命令中有一些严重过剩的示例,所以我不能打破下语法。这是我得到的最接近的:
SELECT CONCAT(firstname, ' ', lastname) AS Name,
MAX(DollarsRaised) AS 'Highest Earner'
FROM donations
JOIN person USING(IDNumber);
执行此操作时,它每次都会从 person 表中的第一个条目中返回名称,而不是实际拉出所筹集到的美元价值最低的人。如果我使用 MIN 函数也是如此。我假设我需要一个 GROUP BY 语句或类似的东西,但不确定如何正确应用它。
【问题讨论】:
-
你的问题说你有两个表名为 person 和donations,donationlist 是什么?
-
打错了,donationlist是donations,我改名了
-
我在 SQL Server 中工作,所以我不熟悉您在这里使用的 SQL 语法,但我会做一些事情,比如使用子查询来选择最大捐赠值,然后在 where 子句中使用它选择捐赠该金额的人。然后做同样的设计,但使用 MIN
-
语法是MariaDB,我想我明白你在说什么,我会尝试再修改一下。
-
捐赠表是每人一行,还是每人多行?