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 Abfrage liefert keine korrekten 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.
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 keine Standard-I hat wollen 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.
Sie sollten Ihre alte Frage bearbeitet haben, die zusätzliche Informationen hinzufügen , nicht ein neues erstellen. – Brandon
Ich habe meine Antwort auf Ihre ursprüngliche Frage hinzugefügt, anstatt hier in dieser doppelten Frage zu antworten. –
Ich habe meine Antwort hier zuerst hinzugefügt und habe sie jetzt auch in die andere Frage eingefügt :) –