teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

エラーメッセージを記載しました。

2018/12/05 08:38

投稿

harusyoui
harusyoui

スコア55

title CHANGED
@@ -1,1 +1,1 @@
1
- laravelのSQLのLEFTJOINで結合する片方だけのテーブルをWhereで絞り込みたいのですが。
1
+ laravelのSQLのrightJOINで結合する片方だけのテーブルをWhereで絞り込みたいのですが。
body CHANGED
@@ -4,13 +4,19 @@
4
4
  FROM `sales_data`
5
5
  RIGHT OUTER JOIN shop ON shop.shop_id = sales_data.shop_id and sales_data.sales_date = '2018-09-01'
6
6
 
7
- というSQLをLaravelのコントローラで行いたいのですが、下記の2行目に文法エラーが出てしまいます。
7
+ というSQLをLaravelのコントローラで行いたいのですがエラーが出てしまいます。
8
8
  この場合どう書けば上手くいきますか?
9
9
 
10
+ ### 発生している問題・エラーメッセージ
11
+
12
+ ```
13
+ SQLSTATE[42S22]: Column not found: 1054 Unknown column 'sales_data.shop_id and sales_data.sales_date = "2018-09-01"' in 'on clause' (SQL: select `shop`.`shop_name` as `shop_name`, sum(sales_data.sales_amount) as sales_amount from `sales_data` right join `shop` on `shop`.`shop_id` = `sales_data`.`shop_id and sales_data`.`sales_date = "2018-09-01"` group by `shop`.`shop_name`)
14
+ ```
15
+
10
16
  ### 該当のソースコード
11
17
 
12
18
  ```laravel
13
19
  $shops = Sales_data::select('shop.shop_name', DB::raw('sum(sales_data.sales_amount) as sales_amount'))
14
- ->rightJOIN( 'shop', 'shop.shop_id', '=', 'sales_data.shop_id and sales_data.sales_date = '2018-09-01'')
20
+ ->rightJOIN( 'shop', 'shop.shop_id', '=', 'sales_data.shop_id and sales_data.sales_date = "2018-09-01"')
15
21
  ->groupby('shop.shop_name')->get();
16
22
  ```