Вы можете расширить класс и тег Application для любых объектов, которые вы там хотите, затем они доступны в любом месте вашего приложения
Он принимает значение hs_id
из внешнего запроса.
Неквалифицированные ссылки столбцов разрешаются из ближайшей области наружу, поэтому это просто рассматривается как коррелированный подзапрос.
Результатом этого запроса будет удаление всех строк из Photo
, где hs_id
не является нулевым, если у HotelSupplier есть хотя бы одна строка, где id = 142 (и поэтому подзапрос возвращает хотя бы одна строка)
Возможно, это будет немного яснее, если вы считаете, каков эффект этого
delete from Photo where Photo.hs_id in (select Photo.hs_id)
Это, конечно, эквивалентно
delete from Photo where Photo.hs_id = Photo.hs_id
Кстати, это далеко и далеко самая распространенная «ошибка», которую я лично видел ошибочно в Microsoft Connect. Erland Sommarskog включает его в свой список желаний для SET STRICT_CHECKS ON
Это сильный аргумент для сохранения совпадений столбцов между таблицами. Как говорит @Martin, синтаксис SQL позволяет разрешать имена столбцов из внешнего запроса, если во внутреннем запросе нет совпадений. Это является благом при написании коррелированных подзапросов, но иногда может иногда вас трогать (как здесь)