【发布时间】:2021-03-21 23:46:40
【问题描述】:
这是我的查询
SELECT
SUM(o.order_disc + o.order_disc_vat) AS manualsale
FROM
orders o
WHERE
o.order_flag IN (0 , 2, 3)
AND o.order_status = '1'
AND (o.assign_sale_id IN (SELECT GROUP_CONCAT(CAST(id AS SIGNED)) AS ids FROM users WHERE team_id = 92))
AND DATE(o.payment_on) = DATE(NOW())
当我在终端中运行此查询时,上述查询返回 null
当我在下面使用子查询时,它会返回数据
SELECT GROUP_CONCAT(CAST(id AS SIGNED)) AS ids FROM users WHERE team_id = 92)
以上查询返回
'106,124,142,179'
当我像下面这样运行我的第一个查询时
SELECT
SUM(o.order_disc + o.order_disc_vat) AS manualsale
FROM
orders o
WHERE
o.order_flag IN (0 , 2, 3)
AND o.order_status = '1'
AND (o.assign_sale_id IN (106,124,142,179))
AND DATE(o.payment_on) = DATE(NOW())
它返回我的价值。 为什么它不适用于子查询请帮助
【问题讨论】:
-
o.assign_sale_id 是什么数据类型
-
o. assign_sale_id 是 int 数据类型
标签: mysql sql subquery aggregate-functions where-clause