You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SELECTrecv.idAS recv, COUNT(recv_enroll) AS overlap FROM"User" recv
2
-
INNER JOIN"Enrollment" recv_enroll ON recv_enroll."userId"=recv.id
3
-
INNER JOIN"Course" course ON recv_enroll."courseId"=course.id
4
-
INNER JOIN"Enrollment" req_enroll ON req_enroll."courseId"=course.id
5
-
WHERE req_enroll."userId"= $1ANDrecv.id<> $1
6
-
GROUP BYrecv.id
7
-
ORDER BY overlap DESCLIMIT $2 OFFSET $3;
1
+
SELECTrecv.id,
2
+
(SELECTCOUNT(*) FROM"Enrollment" recv_enroll
3
+
INNER JOIN"Enrollment" req_enroll
4
+
ON recv_enroll."courseId"= req_enroll."courseId"
5
+
WHERE recv_enroll."userId"=recv.id
6
+
AND req_enroll."userId"= $1)
7
+
AS overlap FROM"User" recv
8
+
WHERErecv.id<> $1
9
+
10
+
AND NOT EXISTS (
11
+
SELECT*FROM"Relationship" rel
12
+
WHERE rel."sendingUserId"IN ($1, recv.id) AND rel."receivingUserId"IN ($1, recv.id)
13
+
AND status ='MATCHED'
14
+
)
15
+
16
+
AND NOT EXISTS (
17
+
SELECT*FROM"Relationship" rel_pd
18
+
WHERE rel_pd."sendingUserId"= $1AND rel_pd."receivingUserId"=recv.id
19
+
AND status ='PENDING'
20
+
)
21
+
22
+
ORDER BY overlap DESC
23
+
LIMIT $2 OFFSET $3;
24
+
25
+
-- SELECT recv.id AS recv, COUNT(recv_enroll) AS overlap FROM "User" recv
26
+
-- LEFT JOIN "Relationship" rel ON (rel."sendingUserId" = recv.id AND rel."receivingUserId" = $1) OR (rel."sendingUserId" = $1 AND rel."sendingUserId" = recv.id)
27
+
-- LEFT JOIN "Enrollment" recv_enroll ON recv_enroll."userId" = recv.id
28
+
-- INNER JOIN "Course" course ON recv_enroll."courseId" = course.id
29
+
-- INNER JOIN "Enrollment" req_enroll ON req_enroll."courseId" = course.id
30
+
-- WHERE req_enroll."userId" = $1 AND recv.id <> $1
0 commit comments