IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

comparer le contenu de deux tables?


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2003
    Messages : 100
    Points : 50
    Points
    50
    Par défaut comparer le contenu de deux tables?
    Bonjour,
    J'ai deux tables identiques en structure (colonnes,type de données ,nombre de colonnes) et tous deux dans la meme base de données Mysql,en fait c'est juste leur nom qui differe.
    Je voudrais savoir si sous Mysql est ce qu'il existe une fonction permettant de comparer leur contenu ou s'il faut proceder dans un alangage de developpement.
    En somme existe il une procedure me permettant cette comparaison.

    Merci
    salut

  2. #2
    Membre actif
    Inscrit en
    Septembre 2005
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 185
    Points : 220
    Points
    220
    Par défaut
    slt Sessime,
    kel interet as tu de créer et de comparer deux tables identiques en structure.
    Pour une manip des attributs de tes tables se serait pas creer des conflits à chak fois?
    la succession d'évènement que nous subissons toute notre vie n'est qu'un phénomène de compensation dont la nature en est l'arbitre.[Inéluctabilité de la nature ] Polace

  3. #3
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2003
    Messages : 100
    Points : 50
    Points
    50
    Par défaut
    Salut,
    j'ai un but derriere en fait c'est comparer le contenu des deux tables.Je prends un exemple simple qui est en fait deux classes de terminale contenant tous 20 eleves.
    On veut donc comparer si les eleves de chaque classe ont les memes noms et prenoms
    classe1(nom,prenom) classe2(nom,prenom)
    salut

  4. #4
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Bonjour,

    C'est possible avec 2 jointures externes (ou un FULL OUTER JOIN mais qui n'existe pas sous MySQL) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT 'Dans classe1 : ',  c1.* FROM classe1 c1 LEFT JOIN classe2 c2
    ON c1.nom=c2.nom AND c1.prenom=c2.prenom
    WHERE c2.nom IS NULL
     
    UNION
     
    SELECT 'Dans classe2 : ',  c2.* FROM classe2 c2 LEFT JOIN classe1 c1
    ON c2.nom=c1.nom AND c2.prenom=c1.prenom
    WHERE c1.nom IS NULL
    Pensez au bouton

  5. #5
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2003
    Messages : 100
    Points : 50
    Points
    50
    Par défaut
    Maximilian
    vous avez donné une reponse qui je crois resout mon probleme mais je voudrais savoir en fait le pkoi tu utilises tes null et aussi la requete union il donne koi qui confirme que classe1 est identique à classe2
    salut

  6. #6
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    En fait la différence entre deux tables, c'est les éléments de la table 1 ne se trouvant pas dans la table 2, plus les éléments de la table 2 ne se trouvant pas dans la 1.

    La première partie de la requête trouve tous les couples (nom, prenom) qui sont dans classe1 et pas dans classe2. Pour cela on utilise une jointure externe (voir l'explication du LEFT JOIN ici)

    La deuxième partie trouve les noms et prénoms de classe2 qui n'ont pas d'équivalent dans classe1.

    L'UNION rassemble les résultats des deux requêtes pour obtenir ce qu'on veut.

    Par ailleurs merci d'éviter au maximum le langage SMS
    Pensez au bouton

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [requête sql]comment comparer des enregistrements de deux tables
    Par DSabah dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 01/06/2007, 15h12
  2. [Debutant] Contenu de deux table
    Par diaboloche dans le forum Langage SQL
    Réponses: 4
    Dernier message: 25/05/2007, 17h03
  3. Comparer le contenu de deux requêtes
    Par Floch dans le forum Access
    Réponses: 2
    Dernier message: 04/05/2006, 11h43
  4. Comparer le contenu de deux vecteurs
    Par misou83 dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 20/07/2005, 17h17
  5. Comparer le contenu de 2 tables
    Par mick84m dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/06/2005, 14h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo