Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/06/2011, 21h30   #1
tut
Membre confirmé
 
Avatar de tut
 
Inscription : juillet 2002
Messages : 373
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 373
Points : 253
Points : 253
Par défaut comportement hétérogène d'une requête

Bonjour,
J'ai une requête qui fonctionne très bien sous mon serveur local quand je développe mon site internet en PHP/MySQL et qui déclenche une erreur quand j'essaie d'exécuter la même requête sur le serveur qui héberge mon site.

La requête en question :
Code :
SELECT DISTINCT ( Artiste.nom), Artiste.style, Artiste.created, Artiste.modified, `Artiste`.`id` FROM `artistes` AS `Artiste` LEFT JOIN `contacts` AS `Contact` ON (`Contact`.`artiste_id` = `Artiste`.`id`)  WHERE 1 = 1   ORDER BY `artiste`.`nom` ASC  LIMIT 25
L'erreur remontée par le serveur :
Citation:
#1054 - Unknown column 'artiste.nom' in 'order clause'
Cette colonne existe bien sûr, et j'ai vérifié les structures des deux bases de données : elles sont rigoureusement identique.

Mais....
tut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 23h47   #2
Invité de passage
 
Homme shammy
Inscription : juin 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme shammy
Localisation : France

Informations forums :
Inscription : juin 2011
Messages : 2
Points : 1
Points : 1
Est ce que la colonne s'appelle artiste.nom ?
shammy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 00h42   #3
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
C'est peut être dû aux `` de phpmyadmin autour de l'alias (et les `` c'est de la m****), retire les et utilise un alias plus concis parce que aliasser `artistes` en `Artiste` je ne vois pas le gain :
Code :
1
2
3
4
5
SELECT DISTINCT a.nom, a.style, a.created, a.modified, a.id 
  FROM artistes AS a 
  LEFT JOIN contacts AS c ON c.artiste_id = a.id  
 WHERE 1 = 1 
 ORDER BY a.nom ASC LIMIT 25
Au passage les parenthèses liées au DISTINCT sont inutiles car DISTINCT retire les lignes en doublons pour toutes les colonnes sélectionnées

Par ailleurs quel est l'intérêt de la jointure externe puisque tu ne sélectionnes aucune colonne de contacts...
Cette requête ferait l'affaire :
Code :
1
2
3
SELECT DISTINCT a.nom, a.style, a.created, a.modified, a.id 
  FROM artistes AS a
 ORDER BY a.nom ASC LIMIT 25
Et il est probable que dans ce cas le DISTINCT soit inutile
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 15h16   #4
tut
Membre confirmé
 
Avatar de tut
 
Inscription : juillet 2002
Messages : 373
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 373
Points : 253
Points : 253
En fait, cette requête est générée par CakePHP, le framework PHP que j'utilise pour le développement de mon site.
Je n'ai pas accès à mon hébergeur pour l'instant, mais je vais faire les essais préconisés.
tut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 16h33   #5
tut
Membre confirmé
 
Avatar de tut
 
Inscription : juillet 2002
Messages : 373
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 373
Points : 253
Points : 253
Bon j'ai trouvé, finalement c'était la clause "order by" qui était mal écrite.
Par contre, je me demande encore pourquoi cela a fonctionné sur un serveur et pas sur l'autre...
tut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 16h01   #6
Membre Expert
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 850
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2011
Messages : 850
Points : 1 327
Points : 1 327
salut,

je crois qu'avec les `` mysql tient compte de la casse et pas quand tu les mets pas
__________________
Eric Dureuil, développeur web, c/c++, java indépendant
soyons
pensez à mettre et
ericd69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h05.


 
 
 
 
Partenaires

Hébergement Web