从数据库中获取匹配多个名称的ID

时间:2013-09-14 10:32:52

标签: sql sql-server

我有数据库

ID FirstName LastName。我想得到各种人的身份。因此,我正在编写如下的查询。

Select ID from Database where FirstName='X' and LastName='x1'
Select ID from Database where FirstName='Y' and LastName='y1'
Select ID from Database where FirstName='Z' and LastName='z1'

我有任何方法可以优化此查询。

2 个答案:

答案 0 :(得分:2)

您可以简单地将多个条件放在单个where子句中,因此为了简单起见,请使用它们。

Select ID from Database 
where (FirstName='X' and LastName='x1') OR 
      (FirstName='Y' and LastName='y1') OR
      (FirstName='Z' and LastName='z1')
带有NULL条目的

- 您可以再添加一个条件

  OR (FirstName is NULL AND LastName is NULL)

答案 1 :(得分:0)

如果你想获得Database表中不存在的那些名称的行(不要在你的表中使用此名称,BTW):

select a.FirstName, a.LastName, d.id
from (
    select 'X', 'X1' union all
    select 'Y', 'Y1' union all
    select 'Z', 'Z1'
) as a(FirstName, LastName)
    left outer join Database as d on d.FirstName = a.FirstName and d.LastName = a.LastName