データベースからデータを取得しようとしていましたが、各ファイルタイプに対して最新のファイルをアップロードするだけで済むようになりました。 WHERE句を使用する前にこれを行いましたが、今回はファイルタイプを決定するために必要なテーブルが追加されています。SQL - WHERE句で最新のレコードのみを選択する
私のクエリはこれまでのようになり、このユーザー用に6つのレコードが取得されています(2x filetypeNo4および4x filetypeNo2)。
SELECT db_file.fileID
,db_profile.NAME
,db_applicationFileType.fileTypeID
,> db_file.dateCreated
FROM db_file
LEFT JOIN db_applicationFiles
ON db_file.fileID = db_applicationFiles.fileID
LEFT JOIN db_profile
ON db_applicationFiles.profileID = db_profile.profileID
LEFT JOIN db_applicationFileType
ON db_applicationFiles.fileTypeID = > > db_applicationFileType.fileTypeID
WHERE db_profile.profileID IN ('19456')
AND db_applicationFileType.fileTypeID IN ('2','4')
私が働いていない。このように見ているWHERE句があります。
(db_file.dateCreated IS NULL
OR db_file.dateCreated = (
SELECT MAX(db_file.dateCreated)
FROM db_file left join
db_applicationFiles on db_file.fileID = db_applicationFiles.fileID
WHERE db_applicationFileType.fileTypeID = db_applicationFiles.FiletypeID
))
私は、これは本当に簡単かもしれないが、私は私に行くように、私はちょうどこのようなものを学ぶのnoob午前申し訳ありませんが
... –
直接あなたの質問に関連しているが、 '' WHERE db_applicationFileType.fileTypeID = db_applicationFiles.FiletypeID'でdb_applicationFiles'をします参加残っていないサンプルデータと期待される結果を提供してください。このテーブルを '内部結合 'として扱います。これがあなたの望むものかどうかは分かりません。 – ughai