SQL Inner Join возвращает намного больше строк, чем ожидалось - PullRequest
1 голос
/ 15 ноября 2010

Следующий запрос возвращает> 7000 строк, когда в каждой таблице только 340 строк.

SELECT Config.Spec, TempTable.Spec FROM Confg INNER JOIN TempTable on Config.Spec = TempTable.Spec

Почему это произошло?Если INNER JOIN возвращает строку только в случае совпадения в обеих таблицах, то зачем возвращать несколько строк для совпадения.

Ответы [ 2 ]

6 голосов
/ 15 ноября 2010

Если существует более одной строки с одинаковым значением Spec в TempTable для одного и того же значения Spec в Confg, то вы получите дублирующиеся строки, и наоборот.

1 голос
/ 15 ноября 2010

Значения поля Spec не уникальны? Это может объяснить, почему запрос возвращает слишком много результатов; с дубликатами вы получите эффективный перекрестный продукт для них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...