【发布时间】:2015-03-31 05:21:45
【问题描述】:
我有一个名字和姓氏的列表。我想要一个通用查询,它使用名字和姓氏搜索每个人的大主表,并为每个人生成一个 ID 值。简而言之,我想要存在 ID 值的记录。
AGARWAL NEERU
AHMAD ANEES
AHUJA KARUMA
AHUJA SAM
AL-HATTAB EYAD
ALATRASH FIDA
所以我基本上想为这些输入检索一些结果,如下所示。
1221 AGARWAL NEERU
2323 AHMAD ANEES
4432 AHUJA KARUMA
1542 AHUJA SAM
8777 ALATRASH FIDA
我能想到的唯一方法是在第一个名字和姓氏上分别使用 where 子句。它没有给我想要的,因为
select b.id,a.firstname, a.lastname from master_table a , ID_table b
where a.firstname in ('NEERU', 'ANEES', 'KARUMA', 'SAM', 'FIDA', 'EYAD')
and a.lastname in ('AGARWAL','AHMAD','AHUJA','ALATRASH')
现在上面的查询也会给我下面这样的人的输出:(你注意到人们的名字或姓氏组合与我想要的不同) 第3433章
【问题讨论】:
-
你标记了这个
mysql和oracle,是哪一个? -
您在
master_table和id_table之间也有一个笛卡尔连接,我假设您实际上想要某种条件将这两者连接在一起。 -
基本 SQL 知识:OR vs. AND