J'ai une requête multi-table, similaire à celle (version simplifiée)Dans mysql, pouvez-vous diviser un alias, par un autre?
SELECT columns, count(table2.rev_id) As rev_count, sum(table2.rev_rating) As sum_rev_rating
FROM table1
LEFT JOIN table2
ON table1.dom_id = table2.rev_domain_from
WHERE dom_lastreview != 0 AND rev_status = 1
GROUP BY dom_url
ORDER BY sum_rev_rating/rev_count DESC
Le problème est dans la clause ORDER BY. Cela provoque une erreur de MySQL pour montrer, qui est la suivante:
« Évaluation sum_ de rev_ » Référence non pris en charge (référence à la fonction de groupe)
J'ai essayé de faire sum_rev_rating/rev_count AS avg_rating, mais j'ai obtenu le même résultat. Je suppose que vous ne pouvez pas faire un alias, à partir d'un alias. Votre méthode a fonctionné parfaitement! –
Vous ne pouvez pas utiliser un alias dans d'autres expressions de la liste de sélection. Vous pouvez utiliser des alias uniquement dans les clauses GROUP BY, HAVING et ORDER BY. –