2017-06-22 47 views
0

によって集計列やグループで参加するが、私は以下の私のテーブル構造であるのMysql 3つの表には、私は外部キー関係を持つデータの3つのテーブルを持っている

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` 

このエラーを解決するために私の体は助けてくれますか? ?ありがとう

答えて

3

多くのSQLデータベースでは、集計されていないフィールドはすべてGROUP BYでなければなりません。この場合は、job_idimported、およびinvoice_noでグループ化する必要があります。

特定の設定では、MySQLではこのようなフィールドを省略することができますが、最近のデフォルトでは、invoicesなどのものを選択してからこのような構文が制限される傾向にあります。 importedは、グループ化されていないプライマリキーがグループ化されたテーブルの一部ではなく、非決定的な結果を持つことがあります。

+0

Ninja'd約5秒。 –

+0

@Uueerdo:これらの列でグループ化しようとします。 – 06011991

+0

@Uueerdo:情報をありがとうございます。出来た ! – 06011991

関連する問題