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

Perbedaan visibilitas dalam subquery bergabung dan di mana

Dalam

FROM working_place wp 
JOIN working_place_worker wpw ON ... 
WHERE ...

ON klausa merujuk hanya ke dua tabel yang ikut bergabung, yaitu wp dan wpw . Nama dari kueri luar tidak terlihat olehnya.

WHERE klausa (dan sepupunya HAVING adalah cara kueri luar berkorelasi dengan subkueri. Nama dari kueri luar adalah terlihat untuk itu.

Agar mudah diingat,

  • ON adalah tentang GABUNG, bagaimana dua tabel berhubungan untuk membentuk baris (atau baris)
  • MANA tentang kriteria seleksi, tes baris harus lulus

Sementara parser SQL akan menerima literal (yang bukan nama kolom) dalam klausa ON, itu menarik garis pada referensi ke kolom di luar gabungan. Anda dapat menganggap ini sebagai bantuan yang menjaga dari kesalahan.

Dalam kasus Anda, wo tabel bukan bagian dari JOIN , dan ditolak. Ini adalah bagian dari keseluruhan kueri, dan dikenali oleh WHERE .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. NEXT_DAY() Fungsi di Oracle

  2. Bagaimana Anda meneruskan argumen ke blok PL/SQL dalam file sql yang dipanggil menggunakan START di sqlplus?

  3. perbedaan antara tabel tab dan all_tables di Oracle

  4. Mencoba memahami kardinalitas dalam diagram hubungan entitas?

  5. Oracle express pengecualian 11g aneh