MYSql

Résolu/Fermé
GwadaCham Messages postés 8 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 7 août 2018 - 24 oct. 2007 à 23:04
 comrad85 - 25 oct. 2007 à 14:31
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.

8 réponses

atomy Messages postés 442 Date d'inscription jeudi 25 janvier 2007 Statut Membre Dernière intervention 11 août 2009 92
24 oct. 2007 à 23:07
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à!
0
GwadaCham Messages postés 8 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 7 août 2018
25 oct. 2007 à 04:38
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.
0
vignemail1 Messages postés 1246 Date d'inscription vendredi 8 octobre 2004 Statut Contributeur Dernière intervention 13 septembre 2019 259
25 oct. 2007 à 08:48
SELECT s1 FROM M WHERE s1 NOT IN (SELECT s1 FROM P);

valide depuis MySQL 4.1 il me semble
0
GwadaCham Messages postés 8 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 7 août 2018
25 oct. 2007 à 14:04
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
GwadaCham Messages postés 8 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 7 août 2018
25 oct. 2007 à 14:06
Mon problème est donc résolu, je pense qu'il y en aura d'autres.
0
GwadaCham Messages postés 8 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 7 août 2018
25 oct. 2007 à 14:08
Pourquoi quand je coche pb résolu ca ne fonctionne pas ?
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
25 oct. 2007 à 14:24
Il est bien marqué comme résolu, rassure-toi :)
Mais « résolu » ne signifie pas « cloturé » par ici !
0
Bonjour, je voulais juste savoir si on pouvait pas faire cela avec un "LEFT OUTER JOIN"?????
merci
0