INNER JOIN - Результат выбора более одной ошибки строки - PullRequest
0 голосов
/ 07 мая 2020

Это может быть вопрос noobi sh, но в Google я думаю, что мне нужно использовать внутреннее соединение, но я не могу заставить его работать:

Я хотел бы запустить команду SQL для получения данных из таблица A, если она существует в таблице B и все ожидаемые столбцы совпадают, но, конечно, я получаю ошибку «Результат выбора более одной строки» на AS400, потому что мне нужно все это.

Что я делаю неправильно? Цель состоит в том, чтобы использовать таблицу B в качестве условия WHERE при выборе из таблицы A.

SELECT column1, column2, column3, column4, column5
from TableA INNER JOIN
     TableB
     ON TableA.column1 = TableB.column1 and
        TableA.column2 = TableB.column2 and 
        TableA.column3 = TableB.column3

TableA и TableB также имеют много строк.

Спасибо!

1 Ответ

2 голосов
/ 07 мая 2020

Ваша ошибка не имеет смысла в этом запросе. Однако, если вам просто нужны столбцы из одной таблицы, используйте exists:

select a.*
from TableA a
where exists (select 1
              from TableB b
              where a.column1 = b.column1 and
                    a.column2 = b.column2 and 
                    a.column3 = b.column3
             );

Это предотвращает появление дубликатов в JOIN и часто имеет лучшую производительность.

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