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 :

Erreur de syntaxe ?


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Points : 94
    Points
    94
    Par défaut Erreur de syntaxe ?
    Bonjour,

    Je n'y comprends rien, dans certains cas cela fonctionne et dans d'autres pas.

    Est-ce qu'à première vue il y a une erreur de syntaxe dans cette requete (les noms de table sont corrigés lors de l'envoi)?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    SELECT DISTINCT 
      R.`itemid`, 
      E.`title`, 
      T_LAT.`data_txt` AS lat, 
      T_LNG.`data_txt` AS lng , 
      TBL1.`data_txt` AS rue , 
      TBL2.`data_txt` AS npa 
    FROM `#__sobi2_cat_items_relations` R 
    LEFT JOIN `#__sobi2_item` E ON R.`itemid` = E.`itemid` 
    LEFT OUTER JOIN `#__sobi2_fields_data` T_LAT ON R.`itemid` = T_LAT.`itemid` AND T_LAT.`fieldid` = '14' 
    LEFT OUTER JOIN `#__sobi2_fields_data` T_LNG ON R.`itemid` = T_LNG.`itemid` AND T_LNG.`fieldid` = '15' 
    LEFT OUTER JOIN `#__sobi2_fields_data` TBL1 ON R.`itemid` = TBL1.`itemid` AND TBL1.`fieldid` = '1' 
    LEFT OUTER JOIN `#__sobi2_fields_data` TBL2 ON R.`itemid` = TBL2.`itemid` AND TBL2.`fieldid` = '2' 
    WHERE R.`catid` IN (21) 
    ORDER BY E.`ordering`

    Par exemple si j'ajoute une condition, cela marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WHERE R.`catid` IN (21) AND   R.`itemid` < '4085'
    ORDER BY E.`ordering`

    Cédric, désespéré

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Tout d'abord je ne comprends pas pourquoi tu mélanges les clauses de jointure avec les clause de filtage.
    Ensuite pourquoi utiliser deux syntaxes différentes LET JOIN puis LEFT OUTER JOIN.
    Enfin, l'encapsulation des noms de colonnes avec ` `, n'est vraiment pas indispensable.
    Sinon, les jointures entre la table #__sobi2_cat_items_relations et quatre fois la table #__sobi2_fields_data semblent syntaxiquement correctes.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Points : 94
    Points
    94
    Par défaut
    Bonjour et merci. Il semble en effet que la requete soit correcte. J'ai découvert dans un log que ma requete retourne :

    DB function failed with error number 1104.

    Je n'ai pas accès à la config de mysql, et j'ai essayé d'effectuer cette requete avant:


    $database->setQuery("SET SQL_BIG_SELECTS=1");

    Sans succès. Une idée?

    Cédric

Discussions similaires

  1. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 15h15
  2. [sql] erreur de syntaxe
    Par cmoa59 dans le forum JDBC
    Réponses: 14
    Dernier message: 03/05/2005, 11h41
  3. erreur de syntaxe en C++
    Par sergepmessa dans le forum C++
    Réponses: 6
    Dernier message: 11/03/2005, 18h15
  4. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 14h09
  5. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 14h53

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