У меня есть очень простой LEFT OUTER JOIN, чтобы вернуть все результаты из левой таблицы и некоторую дополнительную информацию из гораздо большей таблицы. Левая таблица содержит 4935 записей, но когда я оставляю ее в другой таблице, количество записей значительно увеличивается.
Насколько я знаю, это абсолютное Евангелие, что LEFT OUTER JOIN вернет все записи из левой таблицы с совпадающими записями из правой таблицы и нулевые значения для любых строк, которые не могут быть сопоставлены, так как я понимаю, что это должно невозможно вернуть больше строк, чем существует в левой таблице, но все происходит одинаково!
SQL-запрос следует:
SELECT SUSP.Susp_Visits.SuspReason, SUSP.Susp_Visits.SiteID
FROM SUSP.Susp_Visits LEFT OUTER JOIN
DATA.Dim_Member ON SUSP.Susp_Visits.MemID = DATA.Dim_Member.MembershipNum
Возможно, я допустил ошибку в синтаксисе или мое понимание LEFT OUTER JOIN неполное, надеюсь, кто-то может объяснить, как это могло произойти?
постскриптум
Спасибо за отличные ответы, мое понимание LEFT OUTER JOINS теперь намного лучше, может ли кто-нибудь предложить способ, которым этот запрос может быть изменен так, чтобы я получал только столько возвращаемых записей, сколько существует в левой таблице?
Этот запрос предназначен исключительно для генерации отчета, а повторяющиеся совпадения просто запутывают вопросы.
/ Postscript