sql >> Databasteknik >  >> RDS >> Mysql

MySQL JOIN med SUM och 3 tabeller

Partitur och evenemang måste sammanfogas före yttre förenar dem med spelare.

Vi skulle kunna använda en underfråga eller parenteser för att tvinga just denna join-"precedens", men det är trevligare att bara använda ordningen på JOINs i SQL-texten och sedan försiktigt "orientera" den sista JOIN till spelare (HÖGER i detta fall).

COALESCE är bara för att konvertera NULL till 0:or.

SELECT
    P_Id, LastName, FirstName, COALESCE(SUM(Points), 0) TotalPoints
FROM
    Scores
    JOIN Events
        ON Event = E_Id AND Year = 2012
    RIGHT JOIN Players
        ON P_Id = Player
GROUP BY
    P_Id, LastName, FirstName
ORDER BY
    TotalPoints DESC;

Detta ger:

P_ID    LASTNAME    FIRSTNAME   TOTALPOINTS
1       Hansen      Ola         6
2       Svendson    Tove        0
3       Pettersen   Kari        0

Du kan spela med den i denna SQL-fiol .



  1. Anropsproceduren i oracle apex

  2. Att göra en plan för mitt första MySQL-projekt

  3. mySQL-undantag:Det går inte att ansluta till någon av de angivna MySQL-värdarna. genom C#

  4. Hur importerar jag moduler eller installerar tillägg i Postgres?