Повторяющиеся строки в левом соединении - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть 2 таблицы. В одном столбце около 100000 пустых значений, остальные значения целочисленные, итоговые значения около 200000. В другой таблице есть только целочисленное значение. Когда я использую левое соединение в этом столбце, это дало мне много повторяющихся строк. Можно ли использовать здесь левое соединение?

Table 1: 
Column 1
2
3
5
null 
null

Table 2: 
Column 1
1
2
3
so on

enter image description here

1 Ответ

1 голос
/ 15 апреля 2020

Ваш пример действительно странный. Зачем кому-то иметь нулевые значения в поле идентификатора? Но все таки. Если вам нужны поля из таблицы 2 в наборе результатов, как вы сказали выше, тогда вы должны использовать ВНУТРЕННЕЕ СОЕДИНЕНИЕ, а не ЛЕВОЕ СОЕДИНЕНИЕ

Что-то вроде:

    SELECT DISTINCT a.id, a.name, b.someOtherField
      FROM Table1 a
INNER JOIN Table2 b ON a.id = b.id

Обратите внимание: так как только идентификатор поле таблицы 1 имеет нулевые значения, в таблице 1 не будет выбрано ни одной записи с идентификатором IS NULL, поскольку они не имеют эквивалента в таблице 2. Добавление ключевого слова DISTINCT помогает в случае, если этот запрос будет по-прежнему создавать дубликаты.

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