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 :

Requête erreur de syntaxe 1064 [MySQL-8.0]


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 36
    Points : 23
    Points
    23
    Par défaut Requête erreur de syntaxe 1064
    Bonjour,
    Je vous sollicite pur résoudre un petit problème de requête ...je débute en MySQL !! J'ai une première table qui s'appelle biobank_m0 et une 2 ème : biobank_m12 . Chacune contient une date spécifique : dt_incl et dt_visite, respectivement !
    Je voudrais faire un inner join entre les 2 tables en ajoutant une colonne que j'appellerais calcul, qui est la différence entre les 2 dates : dt_visite - dt_incl
    J'ai rajouté des alias car j'avais initialement une erreur type :
    (1248): Every derived table must have its own alias mais cela n'a pas suffit visiblement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT biobank_m12.dt_visite-biobank_m0.dt_incl as calcul 
    FROM(SELECT*FROM biobank_m0 AS INNER JOIN  biobank_m12 AS m12  on m0.patient_id=m12.patient_id) AS result
    erreur : #1064 - Erreur de syntaxe près de 'INNER JOIN biobank_m12 AS m12 on m0.patient_id=m12.patient_id) AS result LIMIT' à la ligne 2
    En vous remerciant par avance
    Bonne journée

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 384
    Points : 19 077
    Points
    19 077
    Par défaut
    Salut à tous.

    Code mysql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT          TIMESTAMPDIFF(DAY, t1.dt_visite, t2.dt_incl) as calcul
               from biobank_m12 as t1
    left outer join biobank_m0  as t2
                 on t2.patient_id = t1.patient_id;
    Tu as oublié de nommer ton alias, celui qui se trouve juste avant le "inner join".

    Pour le calcul entre deux dates, il faut passer par une fonction et préciser dans le premier paramètre ce que tu veux.
    Ici, ce sont des jours.
    Je n'ai pas testé !

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 141
    Points : 38 905
    Points
    38 905
    Billets dans le blog
    9
    Par défaut
    Ou plus exactement "AS" n'étant pas suivi d'un nom, il est considéré comme le nom d'alias ("AS" étant facultatif)
    Mais, comme c'est un mot réservé SQL, il faut en ce cas l'encadrer de quotes inversées AltGr+7

    Il faut donc écrire soit

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FROM biobank_m0 AS M0 
    INNER JOIN  biobank_m12 AS m12

    soit

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FROM biobank_m0 `AS` 
    INNER JOIN  biobank_m12 m12

    Evidemment, la solution 1 est préférable, l'usage de mots réservés SQL étant une source d'erreurs.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 36
    Points : 23
    Points
    23
    Par défaut Résolu
    Merci infiniment à vous, cela fonctionne parfaitement!
    Bonne soirée
    DE

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

Discussions similaires

  1. [MySQL] Requête : erreur de syntaxe
    Par sinox61 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/08/2018, 22h54
  2. [MySQL] Sous requêtes - Erreur de syntaxe
    Par WPH2009 dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 01/04/2009, 21h33
  3. Requête: Erreur de syntaxe
    Par I.Z.M.M dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/01/2009, 19h09
  4. erreur de syntaxe #1064
    Par mickmack dans le forum Débuter
    Réponses: 2
    Dernier message: 25/05/2007, 17h57
  5. Agrégats et sous-requêtes "Erreur de syntaxe"
    Par Finidrigoler dans le forum Access
    Réponses: 3
    Dernier message: 08/12/2006, 17h39

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