Первое значение без ограничения - PullRequest
0 голосов
/ 09 февраля 2020

Мне нравится получать имя и фамилию последнего участника (ов), которые зарегистрировались без использования предложения LIMIT в MYSQL. Следующий код работает, но мое назначение просит меня написать код без LIMIT.

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

Ответы [ 2 ]

2 голосов
/ 09 февраля 2020

Используйте предложение WHERE, чтобы возвращать только строки с последними joindate:

SELECT firstname, surname
FROM Members
WHERE joindate = (SELECT MAX(joindate) FROM Members)
2 голосов
/ 09 февраля 2020

В MySQL версии 8 и выше вы можете альтернативно использовать оконную функцию row_number().

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;

Но я сомневаюсь, что это лучше.

...