BenJ9002 | Bonjour,
Je m'arrache le peu de cheveux qu'il me reste avec une requête à jointures qui fonctionnait parfaitement avec MySQL4 et qui me renvoie une jolie série d'erreurs avec MySQL5.
Le monstre :
Code :
- SELECT r.nom_rub, c.id_cat, c.id_rub, nb_sujets, nb_reponses, nom_cat, date_der_message, der_message, date_message_lu, desc_cat
- FROM `categories` AS c, `droits` AS d
- LEFT JOIN `categories_suivi` AS s ON (c.id_cat=s.id_cat)
- LEFT JOIN `rubriques` AS r ON (c.id_rub=r.id_rub)
- WHERE (d.id_cat=c.id_cat AND d.id_statut=1 AND d.lecture=1 AND s.id_membre=1)
- ORDER BY `ordre_rub`, `ordre_cat`
|
Les contenus des 2 bases de données sont exactement les mêmes (la base MySQL5 est une réplication de la base MySQL4), et la version MySQL5 me renvoit l'erreur Champ 'c.id_cat' inconnu dans on clause
Si je remplace LEFT JOIN `categories_suivi` AS s ON (c.id_cat=s.id_cat) par LEFT JOIN `categories_suivi` AS s USING (id_cat) et l'équivalent pour LEFT JOIN `rubriques`, je me retrouve avec une nouvelle erreur : Champ 'id_rub' inconnu dans from clause.
A noter aussi que la requête simple avec uniquement la jointure entre les tables categories et droits fonctionne correctement :
Code :
- SELECT c.id_cat, c.id_rub, nb_sujets, nb_reponses, nom_cat, date_der_message, der_message, desc_cat
- FROM `categories` AS c, `droits` AS d
- WHERE (d.id_cat = c.id_cat AND d.id_statut =1 AND d.lecture =1)
- ORDER BY `ordre_cat`
|
Il y a des différences importante de gestion des jointures entre MySQL4 et MySQL5 ?
Si vous avez une idée de la source du problème, ça m'aiderai bien Merci d'avance |