Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

gabungan batin implisit - apakah mereka sama?

Saya akan menjawab pertanyaan apakah ketidaksetaraan itu selalu BENAR. Jawabannya adalah "tidak", tidak dalam SQL. Dalam kebanyakan keadaan, mereka setara. Masalah muncul dengan konversi tipe implisit.

Khususnya, jika a.id adalah angka dan kolom lainnya adalah string, maka Anda memiliki situasi di mana:

1 = '1'        -- true
1 = '1.00'     -- true
'1' = '1.00'   -- false

Anda dapat melihat ini pada biola db<>ini. Akan sepele untuk mengatur ini menggunakan JOIN s, tapi karena saya tidak akan menulis kode yang memiliki koma di FROM klausa, saya akan menyerahkan latihan itu kepada Anda.

Dalam praktiknya, id yang digunakan untuk bergabung harus dari jenis yang sama. Anda bahkan tidak dapat mendeklarasikan hubungan kunci asing jika tidak. Selain praktik terbaik itu, kedua kueri tidak secara otomatis setara.

Catatan:Ini akan sama benarnya jika Anda menggunakan standar yang tepat, eksplisit, JOIN sintaks, yang saya sangat, sangat mendorong Anda untuk belajar dan menggunakan secara eksklusif.



  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 Membuat Fungsi PL/SQL Di Database Oracle

  2. Menghubungkan ke database Oracle dengan Node.js Windows

  3. Pengelompokan baris dengan mempertimbangkan perbedaan antar baris

  4. Cara tercepat untuk melakukan perbandingan bidang di tabel yang sama dengan sejumlah besar data di Oracle

  5. Pelajari Cara Menjalankan Prosedur di Toad Untuk Oracle