MySQL select 在 select 查询中

MySQL select in select query

有人可以帮我解决并解释我如何才能完成以下任务吗? : 在我的 MySQL 查询中,我想要 select 所有条目,其中 forwarded_to_cordroom 值为 0,而在下一行中,我想要所有值为 1 的条目,基本上我可以创建2 个相同的查询,唯一的区别是 WHERE 子句 (where forwarded_to_cordroom = 1 , where forwarded_to_cordroom = 0) ,我考虑过在一个查询中执行此操作,但出现以下错误我试过:

SELECT
        COUNT(DISTINCT o.order_id) as count,
        (SELECT o.forwarded_to_cordroom WHERE o.forwarded_to_cordroom = 1)
FROM
        `orders_articles` o
LEFT JOIN orders oo ON
        o.order_id = oo.order_id
WHERE
        (
            oo.finished_order_date IS NULL OR oo.finished_order_date >= '2021-09-27'
        ) AND oo.order_date <= '2021-09-27'

结果:

#1140 - In aggregated query without GROUP BY, expression #2 of SELECT list contains nonaggregated column 'o.forwarded_to_cordroom'; this is incompatible with sql_mode=only_full_group_by

我也尝试过以各种方式更改子select(有和没有连接等)但没有成功,总是出现同样的错误。

我不想关闭此模式,我认为这不是目的,我可以在一些帮助下修复我的查询。

此致

使用条件聚合:

SELECT COUNT(DISTINCT o.order_id) AS count,
       COUNT(CASE WHEN o.forwarded_to_cordroom = 1 THEN 1 END) AS count_1,
       COUNT(CASE WHEN o.forwarded_to_cordroom = 0 THEN 1 END) AS count_0
FROM orders_articles AS o
LEFT JOIN orders AS oo ON o.order_id = oo.order_id
WHERE ...