PHP Difference entre 2 fiches de 2 table differentes

  • Auteur de la discussion le_phenicien
  • Date de début

le_phenicien

Habitué
Bonjour à tous,

mon probleme:

j'ai 2 tables (A et B)dans lesquelles j'ai un champ commun "nomdocument"

j'aimerai selectionner toutes les fiches "nomdocument" de la table A qui ne sont pas dans la table B.

J'ai beau chercher je ne trouve rien qui puissent m'aider... :( et la fonction "SELECT nomdocument FROM tableA WHERE nomdocument !IN (SELECT DISTINCT nomdocument FROM tableB)" ne fonctionne pas.

Merci
 

siegone

Habitué
essaye avec NOT IN plutot que !IN

et note que les subselects ne sont possibles qu'à partir de mysql 4 (si tu utilises mysql...)
 

cisco

Habitué
avec [g]minus[/g]. c'est plus rapide que [g]not in[/g]
[fixed]
select nomdocument
from A
minus
select nomdocument
from B
[/fixed]
 

FMR Hunter

Habitué
[citation=1760,1][nom]Le_Phenicien a écrit[/nom]Bonjour à tous,

mon probleme:

j'ai 2 tables (A et B)dans lesquelles j'ai un champ commun "nomdocument"

j'aimerai selectionner toutes les fiches "nomdocument" de la table A qui ne sont pas dans la table B.

J'ai beau chercher je ne trouve rien qui puissent m'aider... :( et la fonction "SELECT nomdocument FROM tableA WHERE nomdocument !IN (SELECT DISTINCT nomdocument FROM tableB)" ne fonctionne pas.

Merci
[/citation]PHP ?
tu fais cette requete a une base sous MySQL ?

MySQL n'accepte pas les requetes imbriquées :)'()
 

le_phenicien

Habitué
Merci pour vos réponses.

Oui je fais cette requette sous MySql, mais je suis désolé de dire que les solutions proposées ne fonctionnent pas... :(

Quelqu'un aurait il une idée??

La seule autre solution que je vois est de d'enregistrer chacune des tables dans un tableau puis comparer chaque document du 1er tableau avec tous les elements du 2eme, le probleme c'est que lorsqu'il y aura + de 1000 documents...

Je suis ouvert à toutes propositions

@+
 

FMR Hunter

Habitué
[citation=1792,1][nom]Le_Phenicien a écrit[/nom]Merci pour vos réponses.

Oui je fais cette requette sous MySql, mais je suis désolé de dire que les solutions proposées ne fonctionnent pas... :(

Quelqu'un aurait il une idée??

[g]La seule autre solution que je vois est de d'enregistrer chacune des tables dans un tableau puis comparer chaque document du 1er tableau avec tous les elements du 2eme, le probleme c'est que lorsqu'il y aura + de 1000 documents...[/g]
Je suis ouvert à toutes propositions

@+
[/citation]
AAARRRHH

Le_Phenicien m'a tuer
 

FMR Hunter

Habitué
essaye ca:

SELECT A.nomdocument FROM A LEFT JOIN B ON A.nomdocument=B.nomdocument WHERE B.cle IS NULL
 

siegone

Habitué
[citation=1776,1][nom]FMR Hunter a écrit[/nom]MySQL n'accepte pas les requetes imbriquées :)'()
[/citation]
si a partir de la version 4
 

FMR Hunter

Habitué
[citation=1821,1][nom]Siegone a écrit[/nom]
si a partir de la version 4
[/citation]arf ok :merci:
et l'essemblisme aussi?
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 146
Messages
6 718 337
Membres
1 586 416
Dernier membre
Guigeek2814
Partager cette page
Haut