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

質問編集履歴

4

CREATE TABLE部分を修正しました(不要なAUTO INCREMENTを含んでいたため)

2021/07/19 00:30

投稿

hika-rakuyo
hika-rakuyo

スコア15

title CHANGED
File without changes
body CHANGED
@@ -29,7 +29,7 @@
29
29
  `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
30
30
  `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
31
31
  PRIMARY KEY (`id`)
32
- ) ENGINE=InnoDB AUTO_INCREMENT=320 DEFAULT CHARSET=utf8;
32
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
33
33
 
34
34
  INSERT INTO `projects` VALUES
35
35
  (998,'鉛筆ショップ','2021-07-01 00:00:00','2021-07-01 00:00:00'),
@@ -43,7 +43,7 @@
43
43
  `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
44
44
  PRIMARY KEY (`id`),
45
45
  KEY `shops_project_id_index` (`project_id`)
46
- ) ENGINE=InnoDB AUTO_INCREMENT=320 DEFAULT CHARSET=utf8;
46
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
47
47
 
48
48
  INSERT INTO `shops` VALUES
49
49
  (1,999,'大阪本店','2021-07-01 00:00:00','2021-07-01 00:00:00'),
@@ -63,7 +63,7 @@
63
63
  PRIMARY KEY (`id`),
64
64
  KEY `earnings_project_id_index` (`project_id`),
65
65
  KEY `earnings_shop_id_index` (`shop_id`)
66
- ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
66
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
67
67
 
68
68
  INSERT INTO `earnings` VALUES
69
69
  (1,999,1,'1','リンゴ味','2021-06-15','まあまあ売れた。',10,'2021-07-01 00:00:00','2021-07-01 00:00:00'),

3

解消しました。他追記もしています。

2021/07/19 00:30

投稿

hika-rakuyo
hika-rakuyo

スコア15

title CHANGED
@@ -1,1 +1,1 @@
1
- データのMAX値を持つレコードをGROUP BY を使わずに絞込み、別のテーブルに結合させると、思うような結果が得られない
1
+ 【解決】データのMAX値を持つレコードをGROUP BY を使わずに絞込み、別のテーブルに結合させると、思うような結果が得られない
body CHANGED
@@ -70,8 +70,8 @@
70
70
  (2,999,1,'2','ブドウ味','2021-06-20','少し売れた。',5,'2021-07-01 00:00:00','2021-07-01 00:00:00'),
71
71
  (3,999,1,'1','リンゴ味','2021-06-30','かなり売れた。',20,'2021-07-01 00:00:00','2021-07-01 00:00:00');
72
72
  ```
73
- このうち、earningsテーブルには、ある店舗(shop_id)のある日(earned_date)におけるある商品(item_id)の総売上個数(earning)を、それひとつのみ入れていく形になります。
73
+ このうち、`earnings` テーブルには、ある店舗(`shop_id`)のある日(`earned_date`)におけるある商品(`item_id`)の総売上個数(`earning`)を、それひとつのみ入れていく形になります。
74
- (テーブルの定義でunique系の制約なく、説明がないと分かりにくいですよね…。)
74
+ (テーブルの定義で`unique`系の制約なく、分かりにくくて申し訳ありません…。)
75
75
 
76
76
 
77
77
  なお、`item`に関するテーブルもあるのですが、必要な情報は`earnings`テーブルに織り込んでいて結合にも使用しないため、ここでは割愛します。
@@ -215,5 +215,9 @@
215
215
  ![実行結果3](445391eb7406cb5aeafea78f8d897590.png)
216
216
  ### 追記
217
217
 
218
- 必要であればLaravelのクエリビルダを掲載することも可能です。
218
+ ~~必要であればLaravelのクエリビルダを掲載することも可能です。
219
- ただし、このページとは別の質問としてお伺いする可能性もあります。予めご了承ください。
219
+ ただし、このページとは別の質問としてお伺いする可能性もあります。予めご了承ください。~~
220
+ ↑ この質問ページ内でご回答を頂く中で、Laravelでの問題も解消できると確信を持てました。本当にありがとうございました。
221
+
222
+ また、念のため申し上げますと、ここでは自分の手元にあるコードを別の例に書き換えて記載しております。
223
+ データの内容などは架空のものになりますので、安心してご検証いただければ幸いです。

2

2021/07/19 00:21

投稿

hika-rakuyo
hika-rakuyo

スコア15

title CHANGED
File without changes
body CHANGED
@@ -70,6 +70,10 @@
70
70
  (2,999,1,'2','ブドウ味','2021-06-20','少し売れた。',5,'2021-07-01 00:00:00','2021-07-01 00:00:00'),
71
71
  (3,999,1,'1','リンゴ味','2021-06-30','かなり売れた。',20,'2021-07-01 00:00:00','2021-07-01 00:00:00');
72
72
  ```
73
+ このうち、`earnings`テーブルには、ある店舗(`shop_id`)のある日(`earned_date`)におけるある商品(`item_id`)の総売上個数(`earning`)を、それひとつのみ入れていく形になります。
74
+ (テーブルの定義で`unique`系の制約がなく、説明がないと分かりにくいですよね…。)
75
+
76
+
73
77
  なお、`item`に関するテーブルもあるのですが、必要な情報は`earnings`テーブルに織り込んでいて結合にも使用しないため、ここでは割愛します。
74
78
 
75
79
  ### 実行内容

1

体裁を整えました

2021/07/17 16:50

投稿

hika-rakuyo
hika-rakuyo

スコア15

title CHANGED
File without changes
body CHANGED
@@ -177,6 +177,7 @@
177
177
  ```
178
178
 
179
179
  **● いじった中での発見…**
180
+
180
181
  [3] 15,16行目の `project_id`による絞込み制約を消すと、中身は`(null)`だが一応`shop_id=1`の列が立つ
181
182
  ```SQL
182
183
  SELECT