Я столкнулся со странным запросом, встроенным в приложение (да, отлично!):
SELECT PersonId
, Salutation
, Email
, Postcode
FROM vw_NewsletterSubscriptions
WHERE PersonId IN (SELECT PersonId FROM vw_NewsletterSubscriptions)
AND NewsletterTypeID=1
AND UnSubscribeDate Is NULL
GROUP BY PersonId
, Salutation
, Email
, Postcode
Я выбрал именно SELECT в предложении WHERE. Казалось, он говорит «выберите некоторые данные из этого представления, где данные находятся в представлении», что немного ненужно. Поэтому я закомментировал эту строку в предложении WHERE:
SELECT PersonId
, Salutation
, Email
, Postcode
FROM vw_NewsletterSubscriptions
WHERE NewsletterTypeID=1
AND UnSubscribeDate Is NULL
GROUP BY PersonId
, Salutation
, Email
, Postcode
Для полноты я запустил обе версии, чтобы убедиться, что они идентичны, а они нет. Новая версия возвращает больше строк - строк, которых не было в первой версии. Я соединил два набора, чтобы увидеть разницу, но в дополнительных строках нет ничего очевидного.
Я явно что-то здесь упускаю. Не могли бы вы объяснить, что происходит, пожалуйста?