ÚNETE, GRUPO POR, ORDEN POR
El primer problema que tuve con la siguiente consulta fue quegroup by
cláusula se realizó antes de laorder by
:
lossaved.recipe_id
columna es un número entero generado porUNIX_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
Así que probé todo tipo de soluciones diferentes posibles con subconsultas y otras bs. Al final terminé probando algunas sub consultas diferentes en eljoin
cláusula que me obligó a cambiar el orden de la tabla de lafrom
cláusula a lajoin
cláusula. Decidí probar lo siguiente:
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
Por alguna razón esto parece ordenarse correctamente,pero por qué?
¿Cómo puede este cambio hacer que mi consulta se clasifique más correctamente que antes?
¿De verdad? ¿O simplemente sucede que lo hace para los casos de prueba a los que lo presento?