J'ai deux tables: 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:La requête complexe MySQL ne donne pas de bons résultats
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.
Pour décrire mon problème mieux est ici 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.
Vous devriez avoir modifié votre vieille question d'ajouter des informations supplémentaires , n'en crée pas un nouveau. – Brandon
J'ai ajouté à ma réponse à votre question initiale, au lieu de répondre ici à cette question en double. –
J'ai ajouté ma réponse ici en premier, et l'ai maintenant collé dans l'autre question aussi :) –