J'ai deux tableau: Véhicules (ID, VIN) et Images (Id, VehicleId, Nom, Default). Je dois sélectionner le véhicule VIN et son image par défaut à afficher dans un tableau. Le problème que j'ai est que si une image par défaut n'est pas définie, je voudrais toujours sélectionner une image à afficher si elle existe. Si aucune image n'existe, les informations sur le véhicule doivent également toujours être affichées. Voici ce que j'ai jusqu'à présent:MySQL complexe problème JOIN - Impossible d'obtenir des résultats corrects
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
Cette déclaration affiche les véhicules qui ont une image par défaut mais n'affichera rien si aucune valeur par défaut est. De quoi ai-je besoin pour changer?
EDIT *
Pour décrire mon problème mieux voici quelques données de test:
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
Même si un véhicule 2 n'a pas défaut, je veux pour sélectionner une image à afficher. De plus, le véhicule 3 n'a pas d'images du tout mais j'en ai encore besoin pour apparaître dans le tableau sans image. Le véhicule 1 affichera son image par défaut parce qu'elle est définie. J'espère que cela clarifie les choses.
Donc, si une image par défaut n'est pas définie, est-ce que cela signifie qu'il n'y a pas d'entrée dans la table Images, ou juste qu'il n'y a pas d'entrée avec une valeur par défaut de 1? – Brandon
Cela signifie qu'il n'y a pas d'entrée avec la valeur par défaut. 1 –