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

Apa perilaku default MySQL JOIN, INNER atau OUTER?

Di MySQL menulis JOIN tidak memenuhi syarat menyiratkan INNER JOIN . Dengan kata lain INNER di INNER JOIN adalah opsional. INNER dan CROSS adalah sinonim di MySQL. Untuk kejelasan saya menulis JOIN atau INNER JOIN jika saya memiliki kondisi bergabung dan CROSS JOIN jika saya tidak memiliki syarat.

Sintaks yang diizinkan untuk bergabung dijelaskan dalam dokumentasi .

Efeknya sama, tetapi sejarah di baliknya berbeda. Sintaks koma berasal dari standar ANSI-89. Namun ada sejumlah masalah dengan sintaks ini sehingga dalam standar ANSI-92 kata kunci JOIN diperkenalkan.

Saya sangat menyarankan Anda selalu gunakan sintaks GABUNG daripada koma.

  • T1 JOIN T2 ON ... lebih mudah dibaca daripada T1, T2 WHERE ... .
  • Ini lebih mudah dipertahankan karena hubungan tabel dan filter didefinisikan dengan jelas daripada dicampur bersama.
  • Sintaks JOIN lebih mudah dikonversi ke OUTER JOIN daripada sintaks koma.
  • Menggabungkan sintaks koma dan JOIN dalam pernyataan yang sama dapat menimbulkan kesalahan aneh karena aturan prioritas.
  • Kemungkinan kecil untuk secara tidak sengaja membuat produk kartesius saat menggunakan sintaks GABUNG karena klausa gabung yang terlupakan, karena klausa gabungan ditulis di sebelah gabungan dan mudah untuk melihat jika ada yang hilang.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. skrip MYSQL untuk mengonversi nama kolom menjadi huruf kecil

  2. Kunci Asing MySQL

  3. CakePHP 1.3 - Kolom tidak diketahui di mana klausa

  4. Sepertinya tidak bisa EDIT/MODIFY tabel php saya dengan id

  5. Mysql 5.5.10 - Mac 10.6.x - mulai otomatis