回答編集履歴
1
追記
answer
CHANGED
@@ -61,4 +61,26 @@
|
|
61
61
|
|
62
62
|

|
63
63
|
|
64
|
-

|
64
|
+

|
65
|
+
|
66
|
+
追記:
|
67
|
+
joins を使わない方法も考えてみました。
|
68
|
+
```
|
69
|
+
User.where(id: UserStatus.where(status: [2,3]).group(:user_id).having("count(*)=2").select(:user_id))
|
70
|
+
は
|
71
|
+
SELECT "users".*
|
72
|
+
FROM "users" WHERE "users"."id" IN
|
73
|
+
(
|
74
|
+
SELECT "user_statuses"."user_id"
|
75
|
+
FROM "user_statuses"
|
76
|
+
WHERE "user_statuses"."status" IN (?,?)
|
77
|
+
GROUP BY "user_statuses"."user_id"
|
78
|
+
HAVING (count(*)=2)
|
79
|
+
)
|
80
|
+
```
|
81
|
+
の QL を発行します。
|
82
|
+

|
83
|
+
|
84
|
+
参考
|
85
|
+
slformatter といページをつかうと 長い SQL を整形してくれます。
|
86
|
+
[http://www.dpriver.com/pp/sqlformat.htm](http://www.dpriver.com/pp/sqlformat.htm)
|