Ich habe versucht, einige Daten aus unserer Datenbank zu bekommen, aber stecken geblieben, wenn ich nur die neueste Datei hochladen musste für jeden Dateityp. Ich habe dies getan, bevor ich die WHERE-Klausel verwende, aber dieses Mal ist eine zusätzliche Tabelle beteiligt, die benötigt wird, um den Dateityp zu bestimmen.SQL - Wählen Sie nur den neuesten Datensatz mit WHERE-Klausel
Meine Abfrage sieht so weit und ich bekomme sechs Datensätze für diesen Benutzer (2x DateitypNo4 und 4x DateitypNo2).
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')
Ich habe die Klausel WHERE so aussieht, die nicht funktioniert:
(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
))
Sorry, ich bin ein noob so kann dies sehr einfach sein, aber ich lerne gerade dieses Zeug, wie ich gehe auf meine besitzen ..
Bitte geben Datenabtastwert und erwartetes Ergebnis .. –
auf Ihre Frage nicht direkt, sondern 'LEFT JOIN db_applicationFiles' mit einer WHERE db_applicationFileType.fileTypeID = db_applicationFiles.FiletypeID' wird Behandle diese Tabelle als 'innere Verbindung'. Nicht sicher, ob dies das ist, was Sie wollen. – ughai