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

Langage SQL Discussion :

comparer 2 tables


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 51
    Points : 35
    Points
    35
    Par défaut comparer 2 tables
    Bonjour,

    J'ai un problème de comparaison de mes 2 tables Je vous expose le problème.

    J'ai 2 tables :

    - OAIdatestamp
    Champs : idLocuteur, typeGG, typeLG, typeTG, typeLG
    - locuteurs
    Champs : codelocuteur, GG, LG, TG, LG

    Le champs idLocuteur doit avoir la même valeur que codelocuteur,
    Le champs typeGG doit avoir la même valeur que GG,
    Le champs typeLG doit avoir la même valeur que LG,
    Le champs typeTG doit avoir la même valeur que TG,
    etc.

    Pour vérifier cette égalité, je veux pouvoir comparer mes 2 tables pour pouvoir faire ensuite des mofications sur la base OAIdatestamp en cas de besoin.

    Donc, je cherche à comparer 2 tables.

    Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT idLocuteur,typeGG,typeLG,typeTG,typeMG 
    FROM OAIdatestamp WHERE idLocuteur,typeGG,typeLG,typeTG,typeMG 
    NOT IN 
    (SELECT codelocuteur,GG, LG, TG, MG FROM locuteurs)
    Je ne comprend pas pourquoi elle ne fonctionne pas ? (

    Est ce que quelqu'un pourrait m'aider ?

    Merci :-)

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Oracle est l'un des rares SGBD à implémenter le row value constructor -> http://sql.developpez.com/sqlaz/select/#L8
    Justement vous ne mentionnez pas votre SGBD

    Ceci dit, vous devez pouvoir vous en sortir en remplaçant NOT IN par NOT EXISTS.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 51
    Points : 35
    Points
    35
    Par défaut
    En effet, j'ai oublié de préciser que ma base de données est MySQL.

  4. #4
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    quell version?
    si elle est inférieure a 4.1, pas de sous requetes possibles...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 51
    Points : 35
    Points
    35
    Par défaut
    C'est la version MySQL 5.0.15

  6. #6
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    Je ne comprend pas pourquoi elle ne fonctionne pas ?
    tu peux nous donner plus de précision?

    si tu rajoute des parentheses?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT idLocuteur,typeGG,typeLG,typeTG,typeMG 
    FROM OAIdatestamp WHERE (idLocuteur,typeGG,typeLG,typeTG,typeMG)
    NOT IN 
    (SELECT codelocuteur,GG, LG, TG, MG FROM locuteurs)

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par Cybher
    si tu rajoute des parentheses?
    Non, justement vous ne pouvez utiliser plusieurs valeurs avec [NOT] IN que si votre SGBD supporte le row value constructor.
    En l'occurence ça ne doit pas être le cas de MySQL même en version 5.

    Enfin, quand vous dîtes :
    Citation Envoyé par DelphLaga
    Je ne comprend pas pourquoi elle ne fonctionne pas ?
    Donnez-nous le message d'erreur, nous ne sommes pas devin

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 51
    Points : 35
    Points
    35
    Par défaut
    Super !!! ça fonctionne, en effet il ne manquait que des parenthèses ... oh là là quelle débutante :-)))
    MERCI !!!!!!!!!

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

Discussions similaires

  1. Comparer 2 tables sans checker chaque row
    Par BoOom dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 04/05/2006, 13h21
  2. [C#][VS2k5]Comparer 2 tables sans checker chaque row?
    Par BoOom dans le forum Windows Forms
    Réponses: 5
    Dernier message: 25/04/2006, 15h27
  3. Comparer 2 tables de structure identique.
    Par FMaz dans le forum Requêtes
    Réponses: 13
    Dernier message: 31/03/2006, 22h48
  4. Réponses: 7
    Dernier message: 20/02/2006, 16h18
  5. [MySQL] Comparer 2 tables
    Par v4np13 dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 20/10/2005, 18h18

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