次のクエリで最初に発生した問題は、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
何らかの理由で、これは正しく順序付けられているように見えますが、なぜですか?
この変更により、クエリを以前よりも正確に並べ替えるにはどうすればよいですか?
本当にそうですか?それとも、たまたま私が反対したテストケースに対してそれを行うのでしょうか?