Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL JOIN với SUM và 3 bảng

Điểm và sự kiện cần được tham gia nội bộ trước tham gia bên ngoài chúng với người chơi.

Chúng ta có thể sử dụng một truy vấn con hoặc dấu ngoặc đơn để buộc "ưu tiên" tham gia cụ thể này, nhưng tốt hơn là chỉ sử dụng thứ tự của các JOIN trong văn bản SQL và sau đó cẩn thận "định hướng" THAM GIA cuối cùng tới các trình phát (RIGHT trong trường hợp này).

COALESCE chỉ để chuyển đổi NULL thành 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;

Điều này tạo ra:

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

Bạn có thể chơi với nó trong SQL Fiddle này .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để có được số hàng bị ảnh hưởng, trong khi thực hiện truy vấn MySQL từ bash?

  2. # 1366 - Giá trị số nguyên không chính xác:MYsql

  3. JSON_STORAGE_SIZE () - Tìm Kích thước Lưu trữ của Tài liệu JSON trong MySQL

  4. MySql chọn giá trị mặc định nếu không có kết quả?

  5. Làm cách nào để lọc truy vấn theo phần giờ của trường DateTime trong MySQL?