将聚合函数的结果与MySQL查询中的普通字段进行比较时遇到问题。如果我使用where
,则找不到total
列;如果我使用having
,则找不到base_tax_amount
。
SELECT entity_id, base_grand_total + base_subtotal as total from sales_order
having total > base_tax_amount;
请问有人对此有所说明吗?
谢谢
答案 0 :(得分:1)
按照查询执行顺序,-
别名不能在where子句中使用,因为它比select子句更早执行。您需要在下面查询-
SELECT entity_id, base_grand_total + base_subtotal as total
FROM sales_order
WHERE base_grand_total + base_subtotal > base_tax_amount;
此外,您的table
中的base_tax_amount列是否是一列?