PB LEFT JOIN pour Mysql4 sur Mysql5

Fermé
stefanix - 11 oct. 2008 à 16:07
Stef60 Messages postés 251 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 22 avril 2009 - 12 oct. 2008 à 21:00
Bonjour,
voici ma requete :
$sql = "SELECT DISTINCT ad_id, cat_id, subject, descript, add_date, type, price";
$sql .= ", name as country_name, statename as state_name ";
$sql .= " FROM ".$prefix."_classifieds_ads , ".$prefix."_classifieds_category";
$sql .= " LEFT JOIN ".$prefix."_classifieds_country ON (country_id=id)";
$sql .= " LEFT JOIN ".$prefix."_classifieds_states ON (state_id=stateid)";
$sql .= " WHERE valid=1 AND exp_date>$time ";
$sql .= " AND $sql_add";
$sql .= " ORDER BY $sortby $order";
$sql .= " LIMIT $initAds, $maxAds";

$result = mysql_query($sql) or error( mysql_error()."erreur de la requete" );

et hélas le résultat est : "Erreur: Unknown column 'country_id' in 'on clause'erreur de la requete"
alors que les champs sont bien présents et que ça fonctionnait très bien sous Mysql 4

8 réponses

Bonjour

Le message est clair : il n'y a pas de champ country_id dans la table, alors que ta requête y fait référence.
Si tu es sûr que le champ existe, une suggestion : je n'ai pas ma doc mysql sous la main, mais l'ordre des champs importe peut-être dans un left join , et il aurait fallu écrire ON (id=country_id)
0
merci de vous être penchés sur le pb

mais sans le id_country dans le select ça fonctionnait bien avant, et l'ordre du JOIN est bon
croyez moi j'ai fait ces essais là avant de vous poser la question ;)

cordialement
0
ce qui a été modifié : le serveur de mon hébergeur (il est passé de PH4/Mysql4 à la version 5 de chaque)
0
non mais KESAKO ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
11 oct. 2008 à 17:22
bonjour,
ne faudrait-il pas mettre country_id dans le select ?
-1
Utilisateur anonyme
11 oct. 2008 à 22:42
mais sans le id_country dans le select ça fonctionnait bien avant, et l'ordre du JOIN est bon
croyez moi j'ai fait ces essais là avant de vous poser la question ;)

avant quoi, qu'est-ce qui a été modifié, c'est peut être là qu'il faut voir !
-1
Stef60 Messages postés 251 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 22 avril 2009 41
12 oct. 2008 à 20:13
bonjour,
tu as essayé avec des alias ?
-1
Stef60 Messages postés 251 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 22 avril 2009 41
12 oct. 2008 à 21:00
voici un exemple:
SELECT a.id, b.id, a.name, c.name FROM table_1 a,table_2 b, table_3 c ;

Cela permet de repérer de quel table est issu le premier champs id : ici table_1

Je ne sais pas si ca va solutionner ton problème, mais cela nous permettra de savoir à quelle table appartiennent tes champs.
-1