Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kiri bergabung, jumlahkan dan hitung grup menurut

Masalah Anda adalah ketika Anda memiliki dua (atau lebih) store baris dan dua (atau lebih) pics baris untuk satu goods baris, Anda akan mendapatkan produk dari semua kombinasi baris.

Untuk mengatasinya, lakukan agregasi Anda sebelum bergabung:

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. Koneksi Sekuel Pro dan MySQL gagal

  2. Hindari tanda kutip ganda dengan variabel di dalam gema HTML

  3. Saya ingin menyalin tabel yang terdapat dari satu database dan menyisipkan ke tabel database lain

  4. Menjumlahkan kolom yang dipisahkan koma di MySQL 4 (bukan 5)

  5. Memasukkan entri ke kolom JSON di postgres