1

我有带有列的数据库

ID 名字姓氏。我想得到各种人的身份证。因此,我正在编写如下查询。

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'

我有什么办法可以优化这个查询。

4

2 回答 2

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)
于 2013-09-14T10:34:43.213 回答
0

如果您想为那些在您的表中不存在的名称获取行Database(不要为您的表使用此名称,顺便说一句):

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
于 2013-09-14T11:23:37.537 回答