sql >> Database teknologi >  >> RDS >> Mysql

MySql vælger standardværdi, hvis der ikke er nogen resultater?

Jeg er ikke sikker på, hvorfor du inkluderer comment_id i din SELECT-liste, hvis du bare vil have brugere og deres placeringer. Vil du kun have deres placering på den pågældende kommentar? Jeg vil give en løsning indtil videre, der forudsætter, at du bare vil have en fuld medlemsliste med placeringer:

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

(dette forudsætter, at vote_value og best IKKE er NULL-kolonner, eller at MySQL vil se bort fra dem ved beregning af SUM-værdier - det tror jeg, at det gør, men jeg har ikke testet det)



  1. Skrivebeskyttet tabel i mysql

  2. Konverter SQL-resultater til PHP-array

  3. Brug af Jenkins med Kubernetes AWS, del 3

  4. Sammenkæd XMLType-noder i Oracle-forespørgsel