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

Adakah yang bisa membantu menjelaskan mengapa tidak menggunakan SQL JOIN adalah praktik yang buruk dan salah?

Memang benar bahwa kedua bentuk sintaks harus memberikan hasil yang sama dan secara internal MySQL mengeksekusi keduanya dengan cara yang persis sama. Versi standar SQL saat ini mendukung kedua bentuk, meskipun gaya koma hanya didukung untuk kompatibilitas mundur.

Ada kasus di mana menggunakan sintaks gaya koma gagal, tapi itu eksotis:

SELECT * FROM A, B JOIN C ON C.x = A.y;

JOIN operator memiliki prioritas lebih tinggi daripada koma. Jadi saat kueri di atas mencoba mengevaluasi C.x = A.y bahkan tidak tahu bahwa A adalah bagian dari kueri. Jadi Anda mendapatkan kesalahan:

ERROR 1054 (42S22): Unknown column 'A.y' in 'on clause'

Obat terbaik adalah dengan menggunakan JOIN sintaksis secara konsisten alih-alih mencampurnya.

Anda juga tidak dapat membuat gabungan luar dengan sintaks comma-join. Oracle dan Sybase/Microsoft masing-masing menemukan sintaksis miliknya sendiri untuk menangani gabungan luar, tetapi keduanya tidak didukung oleh merek RDBMS lainnya. Saat ini, semua versi RDBMS saat ini termasuk Oracle dan Sybase/Microsoft mendukung standar JOIN sintaks, jadi tidak ada alasan bagus untuk menggunakan ekstensi khusus vendor lama.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menambahkan skrip startup ke wadah buruh pelabuhan mysql?

  2. OperationalError:(2002, Tidak dapat terhubung ke server MySQL lokal melalui soket '/var/run/mysqld/mysqld.sock' (2))

  3. Terhubung pada database MySQL jarak jauh melalui Python

  4. Bagaimana cara men-debug Kueri MySQL/Doctrine2?

  5. Bagaimana saya bisa mendeteksi baris yang berlebihan dalam tabel?