我有一个内部联接到另一个表的查询,我想要包含另一个列中包含的记录。
示例:
select name, address from table1
inner join table2 on table1.id = table2.id
有了这个,我还希望包含具有table1.recno = (1,2,4)
的行。
我怎么能为此编写查询?
我知道的一个选项是使用IN
关键字而不是第一个表连接。但我们的客户不想使用IN关键字。
答案 0 :(得分:1)
使用左连接,然后使用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