sql >> Databasteknik >  >> RDS >> Mysql

Hur man summerar en multipelräkning från flera tabeller

Här är SQL Fiddle visar att frågan nedan verkligen fungerar. Som du kan se skapar jag tabellerna och fyller i dem med de data du har i din fråga. Sedan kör jag nedanstående fråga för att samla in den data du behöver. Jag har verifierat räkningarna och de beräknas korrekt.

SELECT PM.*, 
  (
    PM.SongCount + PM.LessonCount + 
    PM.SongCommCount + PM.LessonCommCount
  ) AS TotalCount 
FROM (
  SELECT P.poster_id, 
    (
      SELECT COUNT(poster_id) 
      FROM song S 
      WHERE P.poster_id = S.poster_id
    ) AS SongCount, 
    (
      SELECT COUNT(poster_id) 
      FROM lesson L 
      WHERE P.poster_id = L.poster_id
    ) AS LessonCount, 
    (
      SELECT COUNT(poster_id) 
      FROM SongComment SC 
      WHERE P.poster_id = SC.poster_id
    ) AS SongCommCount, 
    (
      SELECT COUNT(poster_id) 
      FROM LessonComment LC 
      WHERE P.poster_id = LC.poster_id
    ) AS LessonCommCount 
  FROM poster AS P 
  LIMIT 0, 50
) AS PM
ORDER BY 
  (
    PM.SongCount + PM.LessonCount + 
    PM.SongCommCount + PM.LessonCommCount
  ) DESC


  1. Beräknar kumulativ daglig summa i PostgreSQL

  2. Hur hanterar jag sökfråga med japanska med MySql?

  3. mysql vilket värde har maximalt antal

  4. Mysql-fel:Användaren som har angetts som definierare ('mysql.infoschema'@'localhost') existerar inte' när han försöker dumpa tabellutrymmen