gpt4 book ai didi

Mysql三表join聚合列和group by

转载 作者:太空宇宙 更新时间:2023-11-03 11:37:26 24 4
gpt4 key购买 nike

我有三个具有外键关系的数据表,但是当我执行查询时,它会给出错误,例如 Syntax error or access violation: 1055 Expression #22 of SELECT list is not in GROUP BY clause and contains nonaggregated column invoices.imported'

下面是我的表结构

jobs

id invoice_no customer_id
1 H045 1
2 A041 2

job_detials

id job_id est_start_date est_off_date
1 1 04-01-2017 01-01-2017
2 1 05-02-2017 03-06-2017
3 1 01-05-2017 17-04-2017
4 2 14-04-2017 15-02-2017
5 2 12-04-2017 03-04-2017

invoices

id job_id imported
1 1 1
2 2 0

以及我正在尝试执行结果的查询。

select `jobs`.`id` as `job_id`, `invoices`.`imported`,
MIN(job_details.est_start_date) as est_start_date, MAX(job_details.est_off_date) as est_off_date, `jobs`.`invoice_no` from `jobs`
left join `job_details` on `job_details`.`job_id`= `jobs`.`id` left join `invoices` on `invoices`.`job_id` = `jobs`.`id`
group by `jobs`.`id`

有人能帮我解决这个错误吗? ?谢谢你

最佳答案

在许多 SQL 数据库中,您必须 GROUP BY 所有非聚合字段;在这种情况下,您需要按 job_idimportedinvoice_no 进行分组。

在某些配置下,MySQL 确实允许您省略此类字段,但最近的默认设置倾向于限制此类语法,因为选择了诸如 invoices.imported 之类的内容,即不是其主键被分组的表的一部分,如果不对其进行分组可能会产生不确定的结果。

关于Mysql三表join聚合列和group by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44706661/

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