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

Accès aux données Discussion :

[INNER JOIN] Pourquoi ai-je une syntax error ?


Sujet :

Accès aux données

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2003
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2003
    Messages : 399
    Points : 259
    Points
    259
    Par défaut [INNER JOIN] Pourquoi ai-je une syntax error ?
    Bonjour,

    J'ai un problème dès que je mets un INNER JOIN ....
    ma requete me renvoie un syntax error.

    J'ai simplifié la requête à son maximun mais toujours rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT UnChamp FROM TABLE1 INNER JOIN F_TABLE2 ON
     F_TABLE1.UnChamp = F_TABLE2.UnChamp
    alors que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT UnChamp FROM TABLE1
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT UnChamp FROM TABLE2
    marche bien

    et tout ça va dans un OdbcDataReader.

    Comprend pas !

  2. #2
    Inscrit Avatar de bilb0t
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Points : 283
    Points
    283
    Par défaut
    Citation Envoyé par ricil78

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT UnChamp FROM TABLE1 INNER JOIN F_TABLE2 ON
    F_TABLE1.UnChamp = F_TABLE2.UnChamp
    Si tes tables ont bien ce nom là, ça devrait être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT UnChamp FROM TABLE1 INNER JOIN F_TABLE2 ON
     TABLE1.UnChamp = F_TABLE2.UnChamp
    Mais ça m'étonnerai que ce soit si simple...

    Tu travailles avec quelle BD ? Parce que suivant la BD la syntaxe SQL varie parfois un peu...

  3. #3
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par bilb0t
    Si tes tables ont bien ce nom là, ça devrait être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT UnChamp FROM TABLE1 INNER JOIN F_TABLE2 ON
     TABLE1.UnChamp = F_TABLE2.UnChamp
    Mais ça m'étonnerai que ce soit si simple...
    Ben moi je crois que c'est çà
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  4. #4
    Inscrit Avatar de bilb0t
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Points : 283
    Points
    283
    Par défaut
    Heu...

    Y a quand même pas des gens qui code comme ça ?

    table1 table2
    var1 var2
    Methode1 Method2

    ça doit être gai de se plonger ds ce genre de code

  5. #5
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par bilb0t
    Heu...

    Y a quand même pas des gens qui code comme ça ?

    table1 table2
    var1 var2
    Methode1 Method2

    ça doit être gai de se plonger ds ce genre de code
    Bon alors evitons l'ironie plus qu'il ne faut n'est-ce pas celà peut être un simple code test voyons. Attendons ce que l'interressé lui-même en dit et sachons bienveillance et convenance gardé
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  6. #6
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2003
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2003
    Messages : 399
    Points : 259
    Points
    259
    Par défaut
    Je vous rassure tous c'était juste une erreur de frappe.
    et heureusement pour moi les tables non pas ce nom là.
    Si j'ai marqué table1 et table2 c'était juste pour simplifier la lecture mais a priori c'est manqué !

    Voici la requete qui marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT UnChamp FROM TABLE1 INNER JOIN TABLE2 ON TABLE1.UnChamp = TABLE2.UnChamp
    Et la base que j'attaque avec mon driver ODBC et une base propiétaire.
    mais en vb6 les inner join fonctionne bien. comprend plus !

  7. #7
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Donne le message d'erreur exact plus le nom/version du driver odbc. Peux-tu exécuter cette requête (copier/coller) via une interface autre que ton driver odbc sur ta base?

    A priori ta requête est bonne. Tu pourrais néanmoins remplacer "UnChamp" par "Latable.Lechamp"...

  8. #8
    Inscrit Avatar de bilb0t
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Points : 283
    Points
    283
    Par défaut
    c'est peut-être ça l'erreur...

    Il (le driver) n'arrive peut-être pas à déterminer ds quelle table il doit prendre la valeur. C'est le cas si et seulement ça tes champs on le même nom ds des tables différentes. Mais encore une fois je ne crois pas que ce soit le cas... Parce que le message d'erreur aurait été trop clair...

  9. #9
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2003
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2003
    Messages : 399
    Points : 259
    Points
    259
    Par défaut
    Effectivement j'ai mis le nom de la table devant le champ et cela n'a rien changé.

    J'ai fait la même requête depuis Access 2002 SP3 et la requête fonctionne.

    J'ai fait la même requête depuis le créateur de requête SQL de Visual studio express 2005 et idem ça marche.

    Sinon le driver est un driver "SAGE 12.02" (Logicel de gestion commercial) mais je ne pense pas que le problème vient de là.

    Voici mon code simplifié au cas je ferais une grosse C...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim MyCnx As OdbcConnection
    Dim MyCommand As OdbcCommand
    Dim MyDataReader As OdbcDataReader
     
    MyCnx = New OdbcConnection(MyConString)
    MyCommand = New OdbcCommand()
    MyCnx.Open()
    MyCommand.Connection = MyCnx
    MyCommand.CommandText = "SELECT F_ECRITUREC.CT_NUM FROM
     F_ECRITUREC INNER JOIN F_COMPTET ON F_ECRITUREC.CT_NUM =
     F_COMPTET.CT_NUM"
    MyDataReader = MyCommand.ExecuteReader()
    LA variable "MyConString" est bien définit car la connexion passe bien !

  10. #10
    Inscrit Avatar de bilb0t
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Points : 283
    Points
    283
    Par défaut
    Et le message d'erreur odbc, c'est quoi ?

    Il faut peut-être contacter la société du logiciel propriétaire...

Discussions similaires

  1. Une syntax error
    Par aertys dans le forum Général JavaScript
    Réponses: 33
    Dernier message: 20/02/2015, 13h57
  2. Eclipse pense à une syntax error avec un typedef opaque
    Par Gui13 dans le forum Eclipse C & C++
    Réponses: 6
    Dernier message: 27/10/2009, 14h32
  3. Réponses: 0
    Dernier message: 06/08/2008, 11h44
  4. une requête avec plusieurs INNER JOIN, cmt faire ?
    Par elhosni dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/01/2006, 17h55
  5. Erreur lors d'une requete INNER JOIN
    Par k-lendos dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/03/2004, 15h09

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