Запрос 1:MySQL: Почему эти запросы возвращают разные результаты?
SELECT *
FROM user_d1
WHERE EXISTS (SELECT 1
FROM `user_d1`
WHERE birthdate BETWEEN '1989-08-04' AND '1991-08-04')
ORDER BY timestamp_lastonline DESC
LIMIT 20
Запрос 2:
SELECT *
FROM user_d1
WHERE birthdate BETWEEN '1989-08-04' AND '1991-08-04'
ORDER BY timestamp_lastonline DESC
LIMIT 20
И то, что я действительно не понимаю: почему Query 2 возврат неправильные результаты? Она возвращает список упорядочивается сначала birthdate
, а затем timestamp_lastonline
...
О, очень жаль, что Тим удалил свой ответ, это было очень полезно (соединение PK с внутренним и внешним запросом): 'SELECT * FROM user_d1 uo WHERE EXISTS (SELECT 1 FROM user_d1 ui WHERE ui.birthdate BETWEEN '1989-08-04' AND '1991-08-04' AND ui.id = uo.id) ORDER BY uo.timestamp_lastonline DESC LIMIT 20' – Chris