Выбор записей на основе двух других таблиц - PullRequest
0 голосов
/ 18 августа 2010

У меня есть запрос с внутренним соединением с другой таблицей, с этим я хочу также включить записи, которые содержатся в другом столбце.

Пример:

select name, address from table1
inner join table2 on table1.id = table2.id

С этим я хочу также включить строки, которые имеют table1.recno = (1,2,4).

Как я могу написать запрос для этого?

Один из известных мне вариантов - использовать ключевое слово IN вместо первого объединения таблиц. Но наш клиент не хочет использовать ключевое слово IN.

1 Ответ

1 голос
/ 18 августа 2010

Используйте левое соединение, а затем используйте предложение WHERE, чтобы отфильтровать нужные вам строки.

select name, address 
from table1 
    left join table2 on table1.id = table2.id
where
    table2.id IS NOT NULL OR table1.ID In (1,2,4)

Или, если вы хотите избежать безобидного IN по глупым причинам, используйте:

select name, address 
from table1 
    left join table2 on table1.id = table2.id
where
    table2.id IS NOT NULL 
  OR table1.ID = 1
  OR table1.ID = 2
  OR table1.ID = 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...