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

Résolu
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.

4 réponses

  1. Yvan
     
    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
  2. Utilisateur anonyme
     
    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
  3. Utilisateur anonyme
     
    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
  4. Utilisateur anonyme
     
    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