gpt4 book ai didi

mysql - 如何在计算列上使用 WHERE?

转载 作者:可可西里 更新时间:2023-11-01 06:28:35 27 4
gpt4 key购买 nike

我正在尝试为两个表的某些完整性编写一些查询。查询是这样的

SELECT if( o.is_discounted !=1, o.item_cost, o.discounted_item_cost ) AS order_item_total,
SUM( oi.quantity * oi.price ) AS item_total
FROM orders o
INNER JOIN order_items oi ON oi.order_id = o.id
WHERE order_item_total != item_total
GROUP BY o.id

我过去确实对这些列使用过别名,所以我不确定为什么在这种情况下它告诉我 order_item_total 不是列。

最佳答案

对聚合列使用 having。

SELECT if(o.is_discounted != 1, o.item_cost, o.discounted_item_cost) order_item_total,
SUM(oi.quantity * oi.price) item_total
FROM orders o
INNER JOIN order_items oi ON oi.order_id = o.id
GROUP BY o.id
HAVING order_item_total != item_total

关于mysql - 如何在计算列上使用 WHERE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10178224/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com