Pobiera wartość hs_id z zewnętrznego zapytania.
Dobrze jest mieć zapytanie, które nie wyświetla żadnych kolumn z wybranej tabeli w swoim select lista.
Na przykład
select 10 from HotelSupplier where id = 142
zwróci zestaw wyników z tyloma wierszami, ile pasuje do where klauzula i wartość 10 dla wszystkich rzędów.
Niekwalifikowane odwołania do kolumn są rozwiązywane z najbliższego zakresu na zewnątrz, więc jest to traktowane jako skorelowane zapytanie podrzędne.
Wynikiem tego zapytania będzie usunięcie wszystkich wierszy z Photo gdzie hs_id nie jest null, o ile HotelSupplier ma co najmniej jeden wiersz, gdzie id =142 (a więc podzapytanie zwraca co najmniej jeden wiersz)
Może to być nieco jaśniejsze, jeśli weźmiesz pod uwagę, jaki jest to efekt
delete from Photo where Photo.hs_id in (select Photo.hs_id)
Jest to oczywiście równoznaczne z
delete from Photo where Photo.hs_id = Photo.hs_id
Nawiasem mówiąc, jest to zdecydowanie najczęstszy „błąd”, który osobiście widziałem, błędnie zgłoszony w Microsoft Connect. Erland Sommarskog umieszcza go na swojej liście życzeń dla SET STRICT_CHECKS ON