MYSql

Résolu
Bonjour,
Voici le pb,

Je cherche a faire une requête avec MYsQl V5. qui permette de trouver tous les enregistrements d'une table qui n'existent pas dans une autre.

Table P
A
B
C
D

TABLE M
A
B
C
D
E

La requête doit retourner E.

Merci beaucoup.
Configuration: Windows XP
Internet Explorer 7.0

8 réponses

  1. Bonjour, je voulais juste savoir si on pouvait pas faire cela avec un "LEFT OUTER JOIN"?????
    merci
    1. Il est bien marqué comme résolu, rassure-toi :)
      Mais « résolu » ne signifie pas « cloturé » par ici !
      1. Pourquoi quand je coche pb résolu ca ne fonctionne pas ?
        1. Mon problème est donc résolu, je pense qu'il y en aura d'autres.
          1. 1°) CA MARCHE avec une adaptation à mon cas précis.
            2°) BILAN

            Première table (qques champs utiles)
            CB_membres
            membres_cptr : clé primaire auto-incrémentée.
            membre_nom

            Deuxième table
            CB_plongeurs
            plongeur_cptr : clé primaire auto-incrémentée.
            plongeur_nom
            plongeur_id_unique : C'est la recopie de la valeur de membre_cptr pour cet enregistrement, permet de faire le lien 1-1 entre les deux tables.

            Objectif :
            Trouver les noms des membres de l'association qui ne sont pas inscrits à la plongée.

            Requete finalisée :

            SELECT membre_nom FROM CB_membres
            WHERE membre_cptr NOT IN (select plongeur_id_unique FROM CB_plongeurs)
            ORDER BY membre_nom,........ ASC

            Merci de ton aide.
            1. Contributeur
              SELECT s1 FROM M WHERE s1 NOT IN (SELECT s1 FROM P);

              valide depuis MySQL 4.1 il me semble
              1. C'est effectivement une solution qui fonctionne. On sort deux tableaux images de Table P et Table M, puis on recherche en programmation classique avec deux boucles imbriquées les éléments du tableau M qui n'appartiennent pas au Tableau P.
                C'est simple et fonctionne très bien lorsqu'il y a peu d'enregistrements.
                Les bases de données au travers de requêtes permettent d'obtenir la même chose de façon optimisée ; mais voila, l'unique neurone qui me reste après de nombreux essais et consultation sur internet n'arrive pas à me pondre cette requête.

                Je te remercie vivement pour ta réponse mais je souhaite rester purement SQL (MYsql V5.)

                cordialement.
                1. Salut,

                  Fais une boucle pour chaque enregistrements (A et A, B et B, ...)
                  Ensuite, fais une condition pour tester s'ils sont égaux...

                  Et celles ou ceux qui ne sont pas égaux, mets le(s) dans une table temporaire que tu pourras consulter à ton gré!!

                  Voilà!