【发布时间】:2022-01-26 00:00:58
【问题描述】:
你好,我想知道什么是正确的方式,我被要求提供关于最年长的艺术家的信息。
FROM ListOfArtists
WHERE (DateDeceased - DateofBirth) = (SELECT
MAX(DateDeceased - DateofBirth)
FROM ListOfArtists);
或者:
SELECT *
FROM ListOfArtists
ORDER BY (DateDeceased - DateofBirth) DESC
LIMIT 1
提前致谢!
【问题讨论】:
-
我想知道什么是正确的方法那么当你尝试时,哪一种能给你预期的结果呢?
-
预期的结果是像这样只介绍最年长的艺术家:ArtistID LastName FirstName Nationality DateDeceased DateOfBirth 5 Chagall Marc French 1985 1887
-
他们做了两件不同的事情;一个只报告 1 个结果,一个报告所有价值最高的艺术家。你要哪个?但那是 not 如何在 mysql 中获得两个日期之间的差异;这些只是几年吗?
-
他们都给了我同样的结果,最年长的艺术家
-
它们都给你相同的结果,因为你碰巧有一个特定年龄的艺术家。但是,如果您有两位活了 98 岁并且代表最长寿命的艺术家,您会从这两个查询中得到两个不同的结果。