sql >> Databáze >  >> RDS >> Mysql

MySQL JOIN se SUM a 3 tabulkami

Skóre a události je třeba vnitřně propojit před jejich vnější spojení s hráči.

Mohli bychom použít poddotaz nebo závorky k vynucení tohoto konkrétního spojení „přednost“, ale je lepší použít pouze pořadí JOINů v textu SQL a poté pečlivě „orientovat“ poslední JOIN na hráče (v tomto případě SPRÁVNĚ).

COALESCE je pouze pro převod NULL na 0s.

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;

To produkuje:

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

Můžete si s ním hrát v tomto SQL Fiddle .



  1. MYSQL vyhledávání citlivé na malá a velká písmena (pomocí hibernace) pro utf8

  2. K chybě dochází až po publikování:Nelze se připojit k žádnému ze zadaných hostitelů MySQL.

  3. Připojte se k databázi heroku pomocí pgadmin

  4. Mysql dotaz na ElasticSearch