sql >> Database teknologi >  >> RDS >> PostgreSQL

Find alle medforfattere - Facetering/gruppering for mange til mange kortlægningstabeller

Prøv dette:

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

Demo her

Du kan alternativt bruge en INNER JOIN :

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 her



  1. Kan ikke installere mysqlclient i virtualenv på ny Mac

  2. Sådan undgår du at indsætte duplikerede poster i SQL INSERT-forespørgsel (5 nemme måder)

  3. Brug af variabler i MySQL UPDATE (PHP/MySQL)

  4. Ændring af datadir på my.ini-filen respekteres ikke i WAMP