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

回答編集履歴

2

一行にまとめる SQL を追加

2017/02/22 05:25

投稿

tacsheaven
tacsheaven

スコア13707

answer CHANGED
@@ -14,4 +14,18 @@
14
14
  FROM shop s
15
15
  ...
16
16
  ```
17
- となりますね。(同じショップが月曜日と火曜日で2行出ます)
17
+ となりますね。(同じショップが月曜日と火曜日で2行出ます)
18
+
19
+ もう少しひねって、
20
+ ```SQL
21
+ SELECT s.id, s.name,
22
+ CASE SUM(h.id) WHEN 1 THEN '月曜日'
23
+ WHEN 2 THEN '火曜日'
24
+ WHEN 3 THEN '月・火' END AS holidays
25
+ FROM shop s
26
+ INNER JOIN shop_holiday sh ON (sh.id = s.id)
27
+ INNER JOIN holiday h ON (h.id = sh.holiday)
28
+ WHERE h.name in ('月曜日', '火曜日')
29
+ GROUP BY s.id, s.name
30
+ ```
31
+ もあるけど、トリッキーすぎるかな。

1

誤字修正

2017/02/22 05:25

投稿

tacsheaven
tacsheaven

スコア13707

answer CHANGED
@@ -3,7 +3,7 @@
3
3
  SELECT DISTINCT s.id, s.name
4
4
  FROM shop s
5
5
  INNER JOIN shop_holiday sh ON (sh.id = s.id)
6
- INNER JOIN holiday h ON (s.holiday = h.id)
6
+ INNER JOIN holiday h ON (h.id = sh.holiday)
7
7
  WHERE h.name in ('月曜日', '火曜日')
8
8
  ```
9
9
  ですかね。