Подзапрос вернет NULL
, только когда YearReleased
будет NULL
, в противном случае будет пустой набор записей, что сделает упомянутый вами случай IN ()
.
Очень важно различать два, поскольку они означают совершенно разные вещи. NULL
указывает, что есть что-то, что должно быть SELECT
ed, хотя это значение указывает, так сказать, на «отсутствие ценности». Пустой набор записей означает, что не было ничего, что могло бы быть выбрано в соответствии с указанными критериями.
РЕДАКТИРОВАТЬ : обновлено, чтобы показать примеры результатов
Первые два запроса просто показывают, что находится в двух таблицах. Третий запрос - это ваш запрос, а четвертый запрос просто показывает, что он дает эквивалентный результат (без строк), если вы замените подзапрос на NULL
. Последний запрос просто показывает, что сам подзапрос просто возвращает большой список NULL
s.