PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Finden Sie alle Co-Autoren - Facettierung/Gruppierung für viele zu viele Zuordnungstabellen

Versuchen Sie Folgendes:

SELECT "AuthorId", COUNT(*)
FROM BookAuthorMapping
WHERE "BookId" IN (SELECT "BookId" FROM BookAuthorMapping WHERE "AuthorId" = 1)
GROUP BY "AuthorId"

Demo hier

Alternativ können Sie auch einen INNER JOIN verwenden :

SELECT t1."AuthorId", COUNT(*)
FROM BookAuthorMapping AS t1
INNER JOIN BookAuthorMapping AS t2 ON t1."BookId" = t2."BookId" AND t2."AuthorId" = 1
GROUP BY t1."AuthorId"

Demo hier