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

Memahami Gabung Alami dalam SQL

Ini terlalu panjang untuk dikomentari. Jangan gunakan gabungan alami. Jangan repot-repot mempelajari gabungan alami. Mereka adalah kekejian.

Mengapa? Kondisi bergabung didasarkan pada kolom dengan nama yang sama . Gabungan alami bahkan tidak memperhitungkan hubungan kunci asing yang dideklarasikan. Ini bisa sangat berbahaya. Atau -- dalam kasus saya -- karena hampir semua tabel saya memiliki CreatedAt dan CreatedBy , toh mereka tidak berguna.

Sebagai gantinya, daftarkan join kunci. Dalam kasus Anda (karena Anda memiliki select * ), using klausa yang paling tepat:

SELECT * 
FROM R JOIN
     S
     USING (A, B);

Ini juga memiliki keuntungan bahwa kunci ditampilkan secara eksplisit dalam kueri, yang sangat mengurangi cakupan kesalahan.



  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 memasukkan ID kenaikan otomatis baru

  2. Bagaimana cara memilih tanggal dan waktu tanpa detik di mysql?

  3. NHibernate IPreUpdateEventListener, IPreInsertEventListener tidak menyimpan ke DB

  4. google maps api infowindow beberapa penanda, lokasi yang sama

  5. Kueri SQL yang tidak efisien