Comparer 2 tables

John4834 Messages postés 100 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
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. Alain_42 Messages postés 5413 Statut Membre 904
     
    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;
    
    0
    1. John4834 Messages postés 100 Statut Membre 4
       
      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
      0
  2. Alain_42 Messages postés 5413 Statut Membre 904
     
    il faut preciser sur quel champ doit avoir lieu le DISTINCT

    SELECT DISTINCT action_id FROM 
    0