Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL BERGABUNG dengan SUM dan 3 tabel

Skor dan acara harus disatukan sebelum luar-menggabungkan mereka untuk pemain.

Kita bisa menggunakan subquery atau tanda kurung untuk memaksa "prioritas" gabungan ini, tetapi lebih baik menggunakan urutan GABUNG dalam teks SQL, dan kemudian dengan hati-hati "mengarahkan" GABUNG terakhir ke pemain (KANAN dalam kasus ini).

COALESCE hanya untuk mengonversi NULL ke 0.

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;

Ini menghasilkan:

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

Anda dapat memainkannya di SQL Fiddle ini .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Caching dengan file php

  2. Bagaimana MySQL Menyimpan Enum?

  3. Kesalahan penyisipan JDBC

  4. apa arti pengguna yang tidak diautentikasi di MYSQL?

  5. MySQL berkata:Akses ditolak untuk pengguna 'root'@'localhost' (menggunakan kata sandi:TIDAK)