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

SQL Full Outer Bergabung dengan Beberapa Tabel

Anda perlu melakukan salah satu dari dua hal (dan keduanya mengasumsikan bahwa Table0 memiliki semua contoh num ) -

  1. Jika semua baris sudah dijumlahkan untuk tabel 'daun' (1 - 4), maka LEFT JOIN sederhana (dengan COALESCE() di pilih) sudah cukup - Anda bahkan tidak memerlukan GROUP BY .

  2. Jika Anda perlu menjumlahkan baris, Anda harus menjumlahkannya sebelum gabungan, mengingat bahwa jika tidak, beberapa baris per angka dalam tabel yang berbeda akan menyebabkan hasil menjadi berlipat ganda .

Sesuatu seperti ini:

SELECT Table0.num, COALESCE(Table1.qty, 0), COALESCE(Table2.qty, 0), 
                   COALESCE(Table3.qty, 0), COALESCE(Table4.qty, 0)
FROM Table0
LEFT JOIN (SELECT num, SUM(qty1) as qty
           FROM Table1
           GROUP BY num) Table1
ON Table1.num = Table0.num
LEFT JOIN (SELECT num, SUM(qty2) as qty
           FROM Table2
           GROUP BY num) Table2
ON Table2.num = Table0.num
LEFT JOIN (SELECT num, SUM(qty3) as qty
           FROM Table3
           GROUP BY num) Table3
ON Table3.num = Table0.num
LEFT JOIN (SELECT num, SUM(qty4) as qty
           FROM Table4
           GROUP BY num) Table4
ON Table4.num = Table0.num

(berfungsi contoh SQLFiddle )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa artinya ketika MySQL dalam keadaan Mengirim data?

  2. MySQL - Jika Dimulai Dengan Angka Atau Karakter Khusus

  3. Ayunan kotak kombo Jawa

  4. Bagaimana saya bisa menghindari kesalahan MySQL ini Penentu kolom yang salah untuk NAMA KOLOM kolom?

  5. Baris mana (diurutkan oleh beberapa kolom) dalam tabel yang sesuai dengan baris di tabel lain?