8791 sujets

Développement web côté serveur, CMS

Bonjour,

Je vais essayer d'être clair c'est pas gagné Smiley smile

Je cherche a faire une jointure sur 2 tables , à condition que TOUTES les lignes de la 2 tables vérifient une condition:

Par ex :

Table A : id,nom
Table B : id,idParent, etat


SELECT nom 
FROM A JOIN B 
ON A.id = B.idParent
WHERE ( toutes les lignes de B correspondantes on un etat = 'test')


J'ai esayé avec

SELECT nom  
FROM A 
WHERE  'test' = ALL (SELECT etat FROM B WHERE A.id = B.idParent )

mais ca sort tout Smiley decu

Merci
Modifié par spoon (24 Apr 2009 - 11:05)
Je me réponds tout seul si jamais ça peut servir a qqun Smiley smile


SELECT nom  
FROM A 
WHERE NOT EXISTS(
   SELECT id FROM B  
   WHERE A.id = B.idParent 
   AND etat != 'test'
)

Modifié par spoon (23 Apr 2009 - 13:32)
j'ai pas compris mais

SELECT nom FROM A left join B on A.id = B.idParent
where B.etat = 'test'

ne suffit pas?
Non , parceque il suffit qu'une seule ligne ai un etat = test pour que ça retourne qqch,
le but était que ca ne retourne des enregistrement uniquement
si toutes les lignes de B avec A.id = B.idParent ont etat = test
Modifié par spoon (23 Apr 2009 - 15:26)