Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySql wybierający wartość domyślną, jeśli nie ma wyników?

Nie jestem pewien, dlaczego umieszczasz comment_id na swojej liście SELECT, jeśli chcesz tylko użytkowników i ich rankingi. Czy chcesz tylko ich ranking w tym konkretnym komentarzu? Na razie podam rozwiązanie, które zakłada, że ​​potrzebujesz pełnej listy członków z rankingami:

SELECT
    M.member_id,
    M.user_id,
    M.avatar,
    COALESCE(SUM(C.vote_value), 0) AS vote_value_sum,
    COALESCE(SUM(C.best), 0) AS best_sum,
    COALESCE(SUM(C.vote_value), 0) + SUM(C.best) * 10 AS total_value
FROM
    Members M
LEFT OUTER JOIN Comments C ON
    C.author_id = M.member_id
GROUP BY
    M.member_id
ORDER BY
    total_value DESC
LIMIT 0, 20

(zakłada się, że vote_value i best NIE są kolumnami NULL lub że MySQL zignoruje je podczas obliczania wartości SUM - wierzę, że tak, ale tego nie testowałem)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Transakcja MySQL:SELECT + INSERT

  2. Jak ustawić zestaw znaków i sortowanie bazy danych w MySQL?

  3. Usługa Mysql nie uruchamia się, błąd funkcji inicjowania InnoDB

  4. Dynamicznie ładuj informacje do modalu Twitter Bootstrap

  5. PDO - Nieprawidłowy numer parametru