没有 LIMIT 的第一个值

First value without LIMIT

我想获取在 MYSQL 中没有使用 LIMIT 子句注册的最后一个成员的名字和姓氏。以下代码有效,但我的作业要求我编写没有 LIMIT 的代码。

SELECT firstname, surname
FROM Members
ORDER BY joindate DESC
LIMIT 1

在 MySQL 版本 8 及更高版本中,您可以选择使用 row_number() window 函数。

SELECT x.firstname,
       x.surname
       FROM (SELECT m.firstname,
                    m.surname,
                    row_number() OVER (ORDER BY m.joindate DESC) rn
                    FROM members) x
       WHERE x.rn = 1;

但我怀疑这是否更好。

使用 WHERE 子句仅 return 具有最新 joindate:

的行
SELECT firstname, surname
FROM Members
WHERE joindate = (SELECT MAX(joindate) FROM Members)