ユーザー、プロジェクト、ファイルの 3 つのテーブルがあります。関連する列は次のとおりです。
users: [userid](int)
projects: [userid](int) [projectid](int) [modified](datetime)
files: [userid](int) [projectid](int) [fileid](int) [filecreated](datetime)
クエリを使用してすべてのプロジェクトを一覧表示していますが、別のテーブルの最新のファイルも含めたいと考えています。これに対する私のアプローチは、サブクエリを使用して結合することでした。
これが私が思いついたものですが、私の問題は、最も古いファイルを返すことです:
SELECT * FROM projects
INNER JOIN users ON projects.userid = users.userid
JOIN (SELECT filename,projectid FROM files
GROUP BY files.projectid
ORDER BY filecreated DESC) AS f
ON projects.projectid = f.projectid
ORDER BY modified DESC
ORDER BY filecreated DESC がこれを解決すると思いますが、完全に無視されているようです。
私はSQLにかなり慣れていませんが、おそらくこれに正しい方法でアプローチしていませんか?