我一直试图从数据库中获取一些数据,但当我只需要为每个文件类型获取最新的文件上载时就卡住了。在使用WHERE子句之前,我已经完成了这一步,但是这次需要一个额外的表来确定文件类型。SQL - 只选择WHERE子句的最新记录
我的查询看起来像这样到目前为止,我得到这个用户的六个记录(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
))
对不起我是一个小白所以这可能是很简单,但我刚学这个东西,我去我的自己..
请提供样本数据和预期的结果.. –
不直接关系到你的问题,但'留下了一个'WHERE db_applicationFileType.fileTypeID = db_applicationFiles.FiletypeID'将加入db_applicationFiles'将此表视为“内连接”。不知道这是你想要的。 – ughai