2017-05-18 2 views
1

Depuis que je suis le même type d'erreur expliqué en beaucoup d'autres stackoverflow questions:alias paramètre pour chaque table dérivée dans une base MySQL

MySQLSyntaxErrorException: Chaque table dérivée doit avoir son propre alias

Après avoir lu attentivement il comprend chaque question en double (comme this one par exemple), j'ai essayé d'assigner à chaque table dérivée un alias spécifique.

Ceci est mon exemple requête:

SELECT pl.*, p.cat_1, pb.id 
FROM table_1 AS pl 
JOIN table_2 AS p ON p.id=pl.column_id 
JOIN table_3 AS pb ON pb.id=p.id 
JOIN table_4 AS u ON u.id=pl.user_id 
WHERE pl.value_1=2 AND pl.value_2 > 0 
ORDER BY id desc 

Probablement que je fais quelque chose de mal, cela est peut-être pas la meilleure façon d'écrire la requête? Je ne sais pas, mais sans aucune suggestion, je ne peux pas comprendre quel est le problème, aussi parce que la requête dans le béton fonctionne bien si elle est exécutée.

Des suggestions?

+0

Retirez AS dans l'alias utilisent également alias dans l'ordre par la clause –

+0

ORDER BY id desc nom de la table d'alias d'utilisation par exemple id comme ORDER BY pb.id desc – JYoThI

+1

Votre requête n'a pas de table dérivée. Par conséquent, cette requête ne générerait pas cette erreur. –

Répondre

0


Essayez d'utiliser ci-dessous requête,

SELECT pl.*, p.cat_1, pb.id 
FROM table_1 pl 
JOIN table_2 p ON p.id=pl.column_id 
JOIN table_3 pb ON pb.id=p.id 
JOIN table_4 u ON u.id=pl.user_id 
WHERE pl.value_1=2 AND pl.value_2 > 0 
ORDER BY pb.id desc 
+0

Merci @Jim, malheureusement, ce n'est pas la solution. J'ai déjà essayé d'exécuter à nouveau la requête sans AS pour chaque alias, mais le problème persiste. – UgoL