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

回答編集履歴

1

追記

2015/08/11 08:28

投稿

ngyuki
ngyuki

スコア4516

answer CHANGED
@@ -29,4 +29,51 @@
29
29
 
30
30
  example_checkbox テーブルは example_number と example_check で一意になるはずなので、`example_check = 3` のように example_check を特定すれば、その詳細度は example テーブルと同じ(example_number ごと)だと思います。
31
31
 
32
- (もし、複数の値で OR 検索、であれば話は変わりますが)
32
+ (もし、複数の値で OR 検索、であれば話は変わりますが)
33
+
34
+ ---
35
+
36
+ 相関サブクエリで exists したり、
37
+
38
+ ```sql
39
+ select E.*
40
+ from example E
41
+ where
42
+ exists (
43
+ select * from example_checkbox C
44
+ where C.example_number = E.number
45
+ and C.example_check in (2, 3, 4)
46
+ )
47
+ ```
48
+
49
+ サブクエリを in してみたり、
50
+
51
+ ```sql
52
+ select E.*
53
+ from example E
54
+ where
55
+ E.number in (
56
+ select example_number from example_checkbox
57
+ where example_check in (2, 3, 4)
58
+ )
59
+ ```
60
+
61
+ group by なサブクエリを join したり、
62
+
63
+ ```sql
64
+ select E.*
65
+ from example E
66
+ inner join (
67
+ select example_number from example_checkbox
68
+ where example_check in (2, 3, 4)
69
+ group by example_number
70
+ ) C
71
+ on C.example_number = E.number
72
+ ```
73
+
74
+ ---
75
+
76
+ いずれも試してはいないので、上手くできなかったらごめんなさい。
77
+
78
+ サブクエリを使わずに group by や distinct で重複行を排除するという方法も考えられると思います。
79
+