Está tomando el valor de hs_id
de la consulta externa.
Es perfectamente válido tener una consulta que no proyecte ninguna columna de la tabla seleccionada en su select
lista.
Por ejemplo
select 10 from HotelSupplier where id = 142
devolvería un conjunto de resultados con tantas filas como coincidan con el where
cláusula y el valor 10
para todas las filas.
Las referencias de columnas no calificadas se resuelven desde el alcance más cercano hacia afuera, por lo que esto solo se trata como una subconsulta correlacionada.
El resultado de esta consulta será eliminar todas las filas de Photo
donde hs_id
no es nulo siempre que HotelSupplier tenga al menos una fila donde id =142 (por lo que la subconsulta devuelve al menos una fila)
Podría ser un poco más claro si considera cuál es el efecto de esto
delete from Photo where Photo.hs_id in (select Photo.hs_id)
Esto es, por supuesto, equivalente a
delete from Photo where Photo.hs_id = Photo.hs_id
Por cierto, este es, de lejos, el "error" más común que personalmente he visto informado erróneamente en Microsoft Connect. Erland Sommarskog lo incluye en su lista de deseos para SET STRICT_CHECKS ON