Ich habe zwei Tabellen: Fahrzeuge (Id, VIN) und Bilder (Id, VehicleId, Name, Default). Ich muss die VIN des Fahrzeugs und sein Standardbild auswählen, um es in einer Tabelle anzuzeigen. Das Problem, das ich habe, ist, dass ich, wenn ein Standardbild nicht eingestellt ist, möchte ich noch ein Bild auswählen, um anzuzeigen, wenn es existiert. Wenn keine Bilder vorhanden sind, muss die Fahrzeuginformation natürlich auch noch angezeigt werden. Hier ist, was ich bisher:MySQL komplexe JOIN-Problem - Kann nicht die richtigen Ergebnisse
SELECT
Vehicles.Id, Vehicles.VIN, Images.Name AS Image,
(SELECT COUNT(*) FROM Images WHERE VehicleId = Vehicles.Id) AS ImageCount
FROM
Vehicles
LEFT JOIN
Images ON Images.VehicleId = Vehicles.Id
WHERE
Images.Default = 1
Diese Aussage Fahrzeuge angezeigt werden, die ein Standardbild, aber nicht etwas angezeigt, wenn kein Standard festgelegt ist. Was muss ich ändern?
EDIT *
Um mein Problem besser zu beschreiben hier einige Testdaten:
VEHICLES:
ID VIN
1 12341234123412341
2 23452345234523452
3 34534534534534534
IMAGES:
ID VEHICLEID NAME DEFAULT
1 1 a 1
2 1 b 0
3 2 c 0
4 2 d 0
Obwohl Fahrzeug 2 keinen Standard hat Ich will es ein Bild auszuwählen anzuzeigen. Auch Fahrzeug 3 hat keine Bilder, aber ich brauche es immer noch in der Tabelle ohne Bild. Fahrzeug 1 zeigt sein Standardbild an, weil es eingestellt ist. Ich hoffe, das klärt die Dinge auf.
Also, wenn ein Standardbild nicht gesetzt ist, geht die mittlere dass es überhaupt keinen Eintrag in der Tabelle Images gibt, oder nur, dass es keinen Eintrag mit einem Standardwert von 1 gibt? – Brandon
Es bedeutet, dass es keinen Eintrag mit Default 1 gibt. –