vroum vroum mysql : requête imbriquée

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : vroum vroum mysql : requête imbriquée

Re: vroum vroum mysql : requête imbriquée

par moogli » 03 avr. 2013, 18:47

plutot je pense :
select * from voiture 
where id_voiture not in (
select id_voiture from liaison where id_couleur = (
select id_couleur from couleur nom_couleur='vert'
)
);

vroum vroum mysql : requête imbriquée

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
)