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

Zostaw dołączanie, sumowanie i liczenie grup według

Twój problem polega na tym, że masz dwa (lub więcej) store wiersze i dwa (lub więcej) pics wiersze dla pojedynczego goods wiersz, otrzymujesz iloczyn wszystkich kombinacji wierszy.

Aby to naprawić, wykonaj agregację przed dołączeniem:

SELECT 
  good.id, 
  good.title, 
  IFNULL(s.storerest, 0) AS storerest, 
  IFNULL(p.picscount, 0) AS picscount
FROM goods 
LEFT JOIN (
  SELECT goodid, sum(rest) AS storerest
  FROM store
  GROUP BY goodid
) s ON (goods.id = s.goodid) 
LEFT JOIN (
  SELECT goodid, count(id) AS picscount
  FROM pics
  GROUP BY goodid
) p ON (goods.id = p.goodid) 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. nie można wyświetlić symbolu znaku towarowego w mysql do html

  2. Czy powinienem używać przygotowanych instrukcji dla MySQL w PHP PERFORMANCE-WISE?

  3. Projektowanie bazy danych:do EAV czy nie do EAV?

  4. za pomocą mysql_close()

  5. Przechowywanie wartości skrótu SHA1 w MySQL