[MYSQL] Je n'arrive pas à faire une requete
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
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.
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
-
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?
-
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 -
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.