[MYSQL] Je n'arrive pas à faire une requete

Résolu/Fermé
Utilisateur anonyme - 20 juin 2006 à 16:33
 Utilisateur anonyme - 21 juin 2006 à 10:17
Bonjour,

voila, j'ai deux tables.
Une s'appelle affectation et elle contient les champs id, id_cycle, id_espece.
L'autre s'appelle cycle. Elle contient les champs id et libelle.
Je voudaris voir apparaitre dans le résultat de ma requete les id de la table cycle qui n'existe pas qui n'existe pas pour une plante donnée.

SELECT c.id, libelle
FROM cycles AS c LEFT JOIN affectation AS a ON ( c.id!=a.id_cycle AND a.id_espece='10173' )

Je voudrais donc voir apparaitre QUE les cycles qui n'ont pas encore été affecté à l'espèce 10173.

J'ai essayé différente requete mysql mais je n'arrive pas à en créer une unique qui fonctionne même si au depart la table affectation est vide.

Merci d'avance.

4 réponses

Peut-être comme ça
SELECT c.id, libelle
FROM cycles AS c 
LEFT JOIN affectation AS a
ON c.id = a.id_cycle 
WHERE a.id_espece=10173
AND c.id IS NULL
0
Utilisateur anonyme
21 juin 2006 à 09:32
Merci pour ta proposition mais ca ne marche pas! en effet, si ma table affectation est vide, la requete ne me retourne rien, alors que justement elle devrait me retourné tous les enregistrement de la table cycle. D'autres propositions?
0
Utilisateur anonyme
21 juin 2006 à 09:37
SELECT c.id
FROM cycles AS c
LEFT JOIN affectation AS a
ON c.id != a.id_cycle
WHERE a.id_espece='10173'
OR a.id IS NULL


Cette solution là n'ont plus ne marche pas car cette requete me retourne tous les enregistrements de la table cycle même si il y a déjà des cycles d'affectés
0
Utilisateur anonyme
21 juin 2006 à 10:17
SELECT c.id
FROM cycles AS c
LEFT JOIN affectation AS a
ON c.id=a.id_cycle AND a.id_espece='10174'
WHERE a.id_cycle IS NULL

Voici la bonne requete qui fonctionne meme si au depart la table des affectations est vide.

Merci Yvan pour ton aide.
0