sql >> Databáze >  >> RDS >> Mysql

Levé spojení, sčítání a počítání seskupte podle

Váš problém je, že když máte dva (nebo více) store řádky a dva (nebo více) pics řádků pro jedno goods řádek, skončíte se součinem všech kombinací řádků.

Chcete-li to vyřešit, proveďte před připojením agregaci:

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. Používání relačních databází MySQL na Fedoře 20

  2. pg drahokam '0.14.0' na Mountain Lion selže

  3. PDO ekvivalent mysql_num_rows nebo mssql_num_rows

  4. kde upravit seznamy stopword fulltext mysql?