Itu mengambil nilai hs_id
dari kueri luar.
Sangat valid untuk memiliki kueri yang tidak memproyeksikan kolom apa pun dari tabel yang dipilih dalam select
daftar.
Misalnya
select 10 from HotelSupplier where id = 142
akan mengembalikan set hasil dengan baris sebanyak yang cocok dengan where
klausa dan nilai 10
untuk semua baris.
Referensi kolom yang tidak memenuhi syarat diselesaikan dari lingkup terdekat ke luar sehingga ini hanya diperlakukan sebagai sub kueri yang berkorelasi.
Hasil dari kueri ini adalah menghapus semua baris dari Photo
dimana hs_id
tidak nol selama HotelSupplier memiliki setidaknya satu baris di mana id =142 (dan subquery mengembalikan setidaknya satu baris)
Mungkin sedikit lebih jelas jika Anda mempertimbangkan apa efeknya
delete from Photo where Photo.hs_id in (select Photo.hs_id)
Ini tentu saja setara dengan
delete from Photo where Photo.hs_id = Photo.hs_id
Omong-omong, ini adalah "bug" paling umum yang secara pribadi saya lihat dilaporkan secara keliru di Microsoft Connect. Erland Sommarskog memasukkannya ke dalam daftar keinginannya untuk SET STRICT_CHECKS ON