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

GABUNG Ganda dengan tabel yang sama dua kali

Batas klausa where pada tabel gabungan kiri menghilangkan hasil yang diinginkan karena catatan nol... Jadi pindahkan batas ke gabungan itu sendiri sehingga batas diterapkan SEBELUM gabungan, sehingga menyimpan catatan nilai nol.

SELECT i.*,r.*,r2.*, r.points+r2.points AS sum_points
FROM list_couples AS l
LEFT JOIN rank AS r ON l.p_1=r.player
  and r.week='$week' AND r.anno='$anno' 
LEFT JOIN rank AS r2 ON l.p_2=r2.player
  and  r2.week='$week' AND r2.anno='$year'
ORDER BY sum_points DESC

Karena pluto tidak memiliki minggu/tahun (anno) maka klausa where menghilangkan record tersebut. dengan memindahkan batas ke gabungan, filter diterapkan sebelum gabungan terjadi, sehingga menjaga gabungan luar KIRI.

Dengan kata lain, Klausa WHERE membuat kiri bergabung dengan yang dalam!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mendapatkan Catatan Terakhir Di Setiap Grup Di MySQL

  2. Mengurutkan subpohon dalam struktur data hierarki tabel penutupan

  3. Tutorial rating bintang jquery menggunakan php dan mysql

  4. Mengapa GRANT USAGE dibuat saat pertama kali saya memberikan hak istimewa kepada pengguna?

  5. Cara mengimpor file XML ke tabel database MySQL menggunakan XML_LOAD(); fungsi