回答編集履歴

1

追記

2015/08/11 08:28

投稿

ngyuki
ngyuki

スコア4514

test CHANGED
@@ -61,3 +61,99 @@
61
61
 
62
62
 
63
63
  (もし、複数の値で OR 検索、であれば話は変わりますが)
64
+
65
+
66
+
67
+ ---
68
+
69
+
70
+
71
+ 相関サブクエリで exists したり、
72
+
73
+
74
+
75
+ ```sql
76
+
77
+ select E.*
78
+
79
+ from example E
80
+
81
+ where
82
+
83
+ exists (
84
+
85
+ select * from example_checkbox C
86
+
87
+ where C.example_number = E.number
88
+
89
+ and C.example_check in (2, 3, 4)
90
+
91
+ )
92
+
93
+ ```
94
+
95
+
96
+
97
+ サブクエリを in してみたり、
98
+
99
+
100
+
101
+ ```sql
102
+
103
+ select E.*
104
+
105
+ from example E
106
+
107
+ where
108
+
109
+ E.number in (
110
+
111
+ select example_number from example_checkbox
112
+
113
+ where example_check in (2, 3, 4)
114
+
115
+ )
116
+
117
+ ```
118
+
119
+
120
+
121
+ group by なサブクエリを join したり、
122
+
123
+
124
+
125
+ ```sql
126
+
127
+ select E.*
128
+
129
+ from example E
130
+
131
+ inner join (
132
+
133
+ select example_number from example_checkbox
134
+
135
+ where example_check in (2, 3, 4)
136
+
137
+ group by example_number
138
+
139
+ ) C
140
+
141
+ on C.example_number = E.number
142
+
143
+ ```
144
+
145
+
146
+
147
+ ---
148
+
149
+
150
+
151
+ いずれも試してはいないので、上手くできなかったらごめんなさい。
152
+
153
+
154
+
155
+ サブクエリを使わずに group by や distinct で重複行を排除するという方法も考えられると思います。
156
+
157
+
158
+
159
+