У меня есть три таблицы данных с отношениями внешнего ключа, но когда я делаю запрос, он дает ошибку, например, 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`

Может ли кто-нибудь помочь мне решить эту ошибку. ? Спасибо

0
06011991 22 Июн 2017 в 21:12

1 ответ

Лучший ответ

Во многих базах данных SQL вы должны GROUP BY все неагрегированные поля; в этом случае вам нужно сгруппировать по job_id, imported и invoice_no.

В определенных конфигурациях MySQL позволяет опускать такие поля, но более поздние значения по умолчанию имеют тенденцию ограничивать такой синтаксис, поскольку выбирают что-то вроде invoices. imported, которое не является частью таблицы, первичный ключ которой был сгруппирован по, без группировки по нему может иметь недетерминированные результаты.

3
Uueerdo 22 Июн 2017 в 21:17
Ninja'd примерно на 5 секунд.
 – 
Chris Cudmore
22 Июн 2017 в 21:16
: Хорошо, попытаюсь сгруппировать по этим столбцам
 – 
06011991
22 Июн 2017 в 21:19
: Спасибо за информацию . это сработало !
 – 
06011991
22 Июн 2017 в 21:22