回答編集履歴

1

追記

2019/02/28 12:39

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -27,3 +27,37 @@
27
27
  ```
28
28
 
29
29
  count(*)と比較している数を、条件のtagの数と合わせる必要があります。
30
+
31
+
32
+
33
+ 追記
34
+
35
+ --
36
+
37
+ hotelsのプライマリーはhotel_idなので、訂正。
38
+
39
+ ※定義でなんで(hotel_id, country_code)をユニークにしているのか不明ですが。
40
+
41
+ 前者と結果は変わらないと思いますが、簡潔なので。
42
+
43
+ ```SQL
44
+
45
+ SELECT * FROM hotels
46
+
47
+ where hotel_id in (
48
+
49
+ select hotel_id
50
+
51
+ from hotels_tags inner join tags
52
+
53
+ on hotels_tags.tags_id = tags.tags_id
54
+
55
+ where tag in ('朝食付き', 'キャンセル無料')
56
+
57
+ group by hotel_id
58
+
59
+ having count(*)=2
60
+
61
+ )
62
+
63
+ ```