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

PHP & Base de données Discussion :

Erreur #1054 : Champ inconnus dans having clause


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 25
    Points : 24
    Points
    24
    Par défaut Erreur #1054 : Champ inconnus dans having clause
    Bonjour,
    j'ai cette requête qui marche dans SQLite mais pas sur phpMyAdmin :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    select nom_dep from Depot natural join Livraison natural join Journal group by nom_dep having titre = (select titre from Journal where type_j = 'FEMININ' and periode = 'mensuel');
    Et ça me renvoie l'erreur
    #1054 - Champ 'titre' inconnu dans having clause
    Est-ce que quelqu'un saurait pourquoi j'ai une erreur alors qu'en SQLite j'ai bien des lignes d'affichées ?
    Merci

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 099
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 099
    Points : 8 208
    Points
    8 208
    Billets dans le blog
    17
    Par défaut
    Si on suit le standard SQL (ce qui est généralement une bonne chose ) alors HAVING ne doit contenir que des colonnes présentes dans GROUP BY (ce qui n'est pas le cas de title) ou des fonctions d'agrégation (comme COUNT())

    De plus ta sous-requête n'est pas utile (tu peux directement utiliser un WHERE), et incorrecte si elle retourne plusieurs lignes (auquel cas il faudrait utiliser IN au lieu de =)

    Reformule ta requête :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select nom_dep 
    from Depot 
    natural join Livraison 
    natural join Journal 
    group by nom_dep
    having titre = (
        select titre 
        from Journal 
        where type_j = 'FEMININ' and periode = 'mensuel'
    );

    En :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select nom_dep 
    from Depot 
    natural join Livraison 
    natural join Journal 
    where Journal.type_j = 'FEMININ' and Journal.periode = 'mensuel'
    group by nom_dep

    Si tu as encore des problèmes il faudra nous montrer la structure de tes tables :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    show create table Depot;
    show create table Livraison;
    show create table Journal;
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

Discussions similaires

  1. Erreur #1054 champ .. inconnu on clause
    Par Fred92390 dans le forum Requêtes
    Réponses: 3
    Dernier message: 26/08/2010, 14h33
  2. Champ inconnu dans where clause
    Par sam01 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/06/2010, 12h48
  3. [MySQL] erreur champ ' ' inconnu dans where clause
    Par j2eejsp dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 29/01/2009, 00h28
  4. [XI] Erreur insertion champ mémo dans Crystal
    Par mazu29 dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 24/05/2007, 17h53
  5. Erreur, lors de variables dans la clause LIMIT
    Par ToxiZz dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/11/2006, 19h32

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