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

Kondisi INNER JOIN dalam klausa WHERE atau klausa ON?

Untuk gabungan dalam seperti ini mereka secara logis setara. Namun, Anda dapat mengalami situasi di mana kondisi di klausa join berarti sesuatu yang berbeda dari kondisi di klausa where.

Sebagai ilustrasi sederhana, bayangkan Anda melakukan join kiri seperti ini;

select x.id
from x
       left join y
         on x.id = y.id
;

Di sini kita mengambil semua baris dari x, terlepas dari apakah ada id yang cocok di y. Sekarang katakanlah kondisi join kita bertambah - kita tidak hanya mencari kecocokan di y berdasarkan id tetapi juga pada id_type.

select x.id
from x
       left join y
         on x.id = y.id
         and y.id_type = 'some type'
;

Sekali lagi ini memberikan semua baris di x terlepas dari apakah ada yang cocok (id, id_type) di y.

Ini sangat berbeda, meskipun:

select x.id
from x
       left join y
         on x.id = y.id
where y.id_type = 'some type'
;

Dalam situasi ini, kami memilih semua baris x dan mencoba mencocokkan dengan baris dari y. Sekarang untuk baris yang tidak cocok dengan y, y.id_type akan menjadi nol. Karena itu, y.id_type ='some type' tidak terpenuhi, sehingga baris yang tidak cocok akan dibuang, yang secara efektif mengubahnya menjadi gabungan dalam.

Singkat cerita:untuk sambungan dalam tidak masalah ke mana syaratnya, tetapi untuk sambungan luar bisa.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membatasi waktu masuk dan waktu keluar dalam sehari di VB.NET?

  2. mysql tidak dapat memberikan hak istimewa kepada pengguna, mendapatkan kesalahan:ERROR 1819 (HY000):Kata sandi Anda tidak memenuhi persyaratan kebijakan saat ini

  3. MySql, bagaimana saya bisa mengekspor indeks dari database pengembangan saya ke database produksi saya?

  4. Apa cara terbaik untuk mengikat nilai desimal/ganda/float dengan PDO di PHP?

  5. Hash kata sandi dan pengasinan - apakah ini metode yang bagus?