Comparer 2 tables

Bonjour,

voici mon problème: j'ai 2 tables mysql. Dans ma première table j'ai un champ id. Celui-ci se retrouve dans ma seconde table en tant que clé externe (clé de liaison). Je voudrais faire une requête me permettant de scanner les id de ma table 1 et utiliser un echo dans le cas où cet id de la table 1 ne se retrouve pas dans ma table 2.

Merci de votre aide,
John

2 réponses

  1. il faut preciser sur quel champ doit avoir lieu le DISTINCT

    SELECT DISTINCT action_id FROM 
    1. avec la requette

      SELECT * FROM t1 WHERE id NOT IN (SELECT id FROM t2);
      
      
      ou
      
      SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id
                                             WHERE table2.id IS NULL;
      
      1. Merci ca fonctionne!

        $requete = $bdd->query('
        SELECT DISTINCT * FROM actions
        WHERE action_id NOT IN (SELECT action_id FROM archives);
        ');

        while($donnees = $requete->fetch(PDO::FETCH_OBJ))
        {
        echo $donnees->action_nom.'<br/>';
        }

        Maintenant j'ai plusieurs fois le cas pour une même action. Comment je peux faie pour qu'il ne me l'affiche qu'une seule fois?

        donc au lieu d'avoir:

        45
        89
        78
        56
        23
        45
        89
        78
        56
        23
        ...

        je n'ai qu'une seule fois

        45
        89
        78
        56
        23

        ?

        Merci de votre aide