Notice: Error: Column 'name' in order clause
LeorLindek
-
LeorLindel Messages postés 6 Statut Membre -
LeorLindel Messages postés 6 Statut Membre -
Bonjour à tous,
Voila, j'ai une table "customer" qui contient ces deux colonnes (entre autres) :
customer_group_id
interest_group_id
ainsi que deux tables :
1 - customer_group_description
2 - interestt_group_description
Qui contiennent les colonnes suivantes :
1 -
customer_group_id
language_id
name
2 -
interest_group_id
language_id
name
Voici ma requête php qui doit me servir à récupérer le champ "name"
Et je me retrouve avec une ambiguïté sur le champ "name' !
Où se trouve mon erreur ?
Voila, j'ai une table "customer" qui contient ces deux colonnes (entre autres) :
customer_group_id
interest_group_id
ainsi que deux tables :
1 - customer_group_description
2 - interestt_group_description
Qui contiennent les colonnes suivantes :
1 -
customer_group_id
language_id
name
2 -
interest_group_id
language_id
name
Voici ma requête php qui doit me servir à récupérer le champ "name"
$sql = "SELECT * , CONCAT( c.firstname, ' ', c.lastname ) AS name, cgd.name AS customer_group, igd.name AS interest_group
FROM " . DB_PREFIX . "customer c
LEFT JOIN " . DB_PREFIX . "customer_group_description cgd
ON ( c.customer_group_id = cgd.customer_group_id )
LEFT JOIN " . DB_PREFIX . "interest_group_description igd
ON ( c.interest_group_id = igd.interest_group_id )
WHERE igd.language_id = '" . (int)$this->config->get('config_language_id') . "'
";
Et je me retrouve avec une ambiguïté sur le champ "name' !
Où se trouve mon erreur ?
4 réponses
-
Salut,
Moi dès la première ligne j'éviterais le *
Selectionne exactement ce que tu veux : <table>.<champ>
Si tu veux tout, écris tout.
Car actuellement quand tu fais select * from...
Il va selectionner cgd.name et igd.name
Or, il ne rassemble pas deux colonnes différentes dans une seule (sauf si tu fais un UNION (ALL).
De plus, tu renomes ton champs "name". Peut-être qu'il n'aime pas ça... essaie de voir de ce côté là en tout cas... -
Bonjour,
Je suis d'accord avec galou00.
Est ce que tu peux mettre le "echo" de ta requete s'il te plait ?
-
Je vais faire un essai en mettant les champs concernés plutôt que *
Voila l'appel :<?php echo $customer['interest_group']; ?>
-
Je viens donc de faire cette requête :
$sql = "SELECT cgd.customer_group_id, igd.interest_group_id, cgd.name, igd.name, CONCAT( c.firstname, ' ', c.lastname ) AS name, cgd.name AS customer_group, igd.name AS interest_group FROM " . DB_PREFIX . "customer c LEFT JOIN " . DB_PREFIX . "customer_group_description cgd ON ( c.customer_group_id = cgd.customer_group_id ) WHERE cgd.language_id = '" . (int)$this->config->get('config_language_id') . "' LEFT JOIN " . DB_PREFIX . "interest_group_description igd ON ( c.interest_group_id = igd.interest_group_id ) WHERE igd.language_id = '" . (int)$this->config->get('config_language_id') . "' ";
Et voici l'erreur engendrée :Notice: Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN 1531_interest_group_description igd ON ( c.interest_group_id = igd' at line 6 Error No: 1064