【发布时间】:2021-11-19 17:29:52
【问题描述】:
有人可以帮我解决并解释我如何完成以下工作吗? : 在我的 MySQL 查询中,我想选择所有条目,其中 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 - 在没有 GROUP BY 的聚合查询中,SELECT 列表的表达式 #2 包含非聚合列 'o.forwarded_to_cordroom';这是 与 sql_mode=only_full_group_by 不兼容
我也尝试过以各种方式更改子选择(有和没有连接等),但没有成功,总是同样的错误。
我不想关闭此模式,我认为这不是目的,我可以通过一些帮助来修复我的查询。
最好的问候
【问题讨论】: