JOIN, GROUP BY, ORDER BY
Problem, który po raz pierwszy napotkałam w następującym zapytaniu, to żegroup by
klauzula została wykonana przedorder by
:
Thesaved.recipe_id
kolumna jest liczbą całkowitą wygenerowaną przezUNIX_TIMESTAMP()
SELECT
saved.recipe_id,
saved.`date`,
user.user_id
FROM saved
JOIN user
ON user.id = saved.user_id
GROUP BY saved.recipe_id
ORDER BY saved.`date` DESC
Spróbowałem więc różnego rodzaju różnych możliwych rozwiązań z zapytaniami podrzędnymi i innymi bs. W końcu skończyłem z wypróbowaniem różnych pod-zapytań wjoin
klauzula witch wymagała ode mnie zmiany kolejności w tabelifrom
klauzula dojoin
klauzula. Postanowiłem wypróbować następujące rozwiązania:
SELECT
saved.recipe_id,
saved.`date`,
user.user_id
FROM user
JOIN saved
ON user.id = saved.user_id
GROUP BY saved.recipe_id
ORDER BY saved.`date` DESC
Z jakiegoś powodu wydaje się, że porządkuje poprawnie,ale dlaczego?
Jak ta zmiana może sprawić, że moje zapytanie będzie lepiej sortowane niż wcześniej?
Czy to naprawdę? czy może po prostu robię to w przypadku przypadków testowych, przeciwko którym to przedstawiam?