Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Sintaks gabungan mana yang lebih baik?

Yah, "lebih baik" itu subjektif. Ada beberapa gaya di sini. Tapi saya akan menjawab pertanyaan Anda secara langsung.

  1. Keduanya melakukan hal yang sama
  2. Keduanya sesuai dengan ANSI.
  3. Masalah dengan contoh pertama adalah

    • sangat mudah untuk mendapatkan produk silang secara tidak sengaja (karena lebih mudah untuk mengabaikan kriteria bergabung)

    • juga menjadi sulit untuk men-debug kriteria bergabung saat Anda menambahkan lebih banyak dan lebih banyak tabel ke gabung

    • karena sintaks gabungan luar gaya lama (*=) telah ditinggalkan (telah lama didokumentasikan untuk mengembalikan hasil yang salah), ketika Anda perlu memperkenalkan gabungan luar, Anda perlu mencampur gaya baru dan gabungan gaya lama ... mengapa mempromosikan inkonsistensi?

    • meskipun itu bukan otoritas pada praktik terbaik, Microsoft merekomendasikan sintaks INNER/OUTER JOIN yang eksplisit

    • dengan metode terakhir:

      • Anda menggunakan sintaks gabungan yang konsisten terlepas dari dalam/luar
      • lebih sulit (bukan tidak mungkin) untuk secara tidak sengaja menurunkan hasil kali silang
      • mengisolasi kriteria gabungan dari kriteria filter dapat mempermudah proses debug

Saya menulis pos yang ditunjuk Kevin.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. @@IDENTITY, SCOPE_IDENTITY(), OUTPUT dan metode lain untuk mengambil identitas terakhir

  2. Buat Fungsi Buatan Pengguna Skalar di SQL Server

  3. Nonaktifkan Akun SA di SQL Server (Contoh T-SQL)

  4. Gunakan sys.trigger_event_types untuk Mencantumkan Jenis Peristiwa Pemicu di SQL Server

  5. Berurusan dengan NULL di SQL Server