我第一次遇到以下查询的问题是该group by
子句是在 之前执行的order by
:
该saved.recipe_id
列是由生成的整数UNIX_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
所以我用子查询和其他 bs 尝试了各种不同的可能解决方案。最后,我最终在join
子句中尝试了一些不同的子查询,要求我将表顺序从from
子句更改为join
子句。我决定尝试以下方法:
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
出于某种原因,这似乎正确排序,但为什么呢?
此更改如何使我的查询排序比以前更正确?
真的吗?还是只是碰巧针对我提出的测试用例这样做?