根据另外两个表选择记录

时间:2010-08-18 08:52:38

标签: sql tsql

我有一个内部联接到另一个表的查询,我想要包含另一个列中包含的记录。

示例:

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

有了这个,我还希望包含具有table1.recno = (1,2,4)的行。

我怎么能为此编写查询?

我知道的一个选项是使用IN关键字而不是第一个表连接。但我们的客户不想使用IN关键字。

1 个答案:

答案 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