回答編集履歴
1
追記
test
CHANGED
@@ -125,3 +125,47 @@
|
|
125
125
|
|
126
126
|
|
127
127
|
![イメージ説明](6caa2b60c4b9e5d04a52f0b7fc1635ac.png)
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
追記:
|
132
|
+
|
133
|
+
joins を使わない方法も考えてみました。
|
134
|
+
|
135
|
+
```
|
136
|
+
|
137
|
+
User.where(id: UserStatus.where(status: [2,3]).group(:user_id).having("count(*)=2").select(:user_id))
|
138
|
+
|
139
|
+
は
|
140
|
+
|
141
|
+
SELECT "users".*
|
142
|
+
|
143
|
+
FROM "users" WHERE "users"."id" IN
|
144
|
+
|
145
|
+
(
|
146
|
+
|
147
|
+
SELECT "user_statuses"."user_id"
|
148
|
+
|
149
|
+
FROM "user_statuses"
|
150
|
+
|
151
|
+
WHERE "user_statuses"."status" IN (?,?)
|
152
|
+
|
153
|
+
GROUP BY "user_statuses"."user_id"
|
154
|
+
|
155
|
+
HAVING (count(*)=2)
|
156
|
+
|
157
|
+
)
|
158
|
+
|
159
|
+
```
|
160
|
+
|
161
|
+
の QL を発行します。
|
162
|
+
|
163
|
+
![イメージ説明](29f8d491b67ddafa9d9d0a316d0d0397.png)
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
参考
|
168
|
+
|
169
|
+
slformatter といページをつかうと 長い SQL を整形してくれます。
|
170
|
+
|
171
|
+
[http://www.dpriver.com/pp/sqlformat.htm](http://www.dpriver.com/pp/sqlformat.htm)
|