par
Azertyty » 03 avr. 2013, 14:17
Ma base de données :
Voiture
id_voiture
nom_voiture
carac_voiture
type_voiture
valable_voiture
Liaison
id_couleur
id_voiture
Couleur
id_couleur
nom_couleur
--------
Donc dans l'idée une voiture peut avoir plusieurs couleurs, et une couleur peut aller à plusieurs voitures.
Ex : Voiture dont l'identifiant est 1 existe en bleu, vert, vert émeraude, gris, jaune
Mon problème :
- j'ai commencé par exporter via à la requête ci-dessous toutes les voitures qui ont comme couleur un dégradé de vert (elle fonctionne)
SELECT distinct v.nom_voiture, c.nom_couleur
FROM voiture v, liaison l, couleur c
WHERE v.id_voiture=l.id_voiture
AND c.id_couleur=l.id_couleur
AND c.nom_couleur LIKE '%vert%'
AND v.valable_voiture =1
ORDER BY v.id_voiture ASC
- Ensuite,
le coeur du problème, c'est que je souhaiterai afficher "le reste", c'est à dire toutes les voitures en dehors de celle qui ont la caractéristique verte (en sachant que je ne veux pas voir les voitures pour lesquelles une des couleur disponible soit le vert )
select *
from voiture
where id_voiture NOT IN ( SELECT v.id_voiture
FROM voiture v, liaison l, couleur c
WHERE v.id_voiture=l.id_voiture
AND c.id_couleur=l.id_couleur
AND c.nom_couleur LIKE '%vert%'
AND v.valable_voiture =1
)
Ma base de données :
[b]Voiture[/b]
[u]id_voiture[/u]
nom_voiture
carac_voiture
type_voiture
valable_voiture
[b]Liaison[/b]
[u]id_couleur
id_voiture[/u]
[b]Couleur[/b]
[u]id_couleur[/u]
nom_couleur
--------
Donc dans l'idée une voiture peut avoir plusieurs couleurs, et une couleur peut aller à plusieurs voitures.
[b]Ex : [/b]Voiture dont l'identifiant est 1 existe en bleu, vert, vert émeraude, gris, jaune
[b]
Mon problème[/b] :
- j'ai commencé par exporter via à la requête ci-dessous toutes les voitures qui ont comme couleur un dégradé de vert (elle fonctionne)
[sql]SELECT distinct v.nom_voiture, c.nom_couleur
FROM voiture v, liaison l, couleur c
WHERE v.id_voiture=l.id_voiture
AND c.id_couleur=l.id_couleur
AND c.nom_couleur LIKE '%vert%'
AND v.valable_voiture =1
ORDER BY v.id_voiture ASC[/sql]
- Ensuite, [b]le coeur du problème,[/b] c'est que je souhaiterai afficher "le reste", c'est à dire toutes les voitures en dehors de celle qui ont la caractéristique verte (en sachant que je ne veux pas voir les voitures pour lesquelles une des couleur disponible soit le vert )
[sql]select *
from voiture
where id_voiture NOT IN ( SELECT v.id_voiture
FROM voiture v, liaison l, couleur c
WHERE v.id_voiture=l.id_voiture
AND c.id_couleur=l.id_couleur
AND c.nom_couleur LIKE '%vert%'
AND v.valable_voiture =1
)[/sql]