Mam zapytanie multi-table, podobny do tego (w wersji uproszczonej)W mysql, możesz podzielić jeden alias, przez inny?
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
Problem jest w klauzuli ORDER BY. Powoduje to błąd mysql, aby zobaczyć, co jest w następujący sposób:
odniesienia 'sum_ rev_ ocena' nie jest obsługiwana (odniesienie do grupy funkcyjnej)
Próbowałem robić sum_rev_rating/rev_count AS avg_rating, ale otrzymałem ten sam wynik. Chyba nie możesz zrobić pseudonimu z aliasu. Twoja metoda działała bez zarzutu! –
Nie można używać aliasu w innych wyrażeniach na liście select. Aliasów można używać tylko w klauzulach GROUP BY, HAVING i ORDER BY. –