如何避免同一个表中的子查询

时间:2017-08-02 20:34:44

标签: sql

假设我们有一个包含FirstName,LastName和其他一些列的Person表。

FirstName | LastName | City
----------------------------
John      |    White  |   NY
Adam      |    White   |  SFO
Kevin     |    White  |   LA
Tom       |    Loni   |   Chicago

现在,我想要检索所有与“Adam”姓氏相同的人,这是我的输入。 我不想要子查询,这意味着我不想先选择“Adam”的姓氏,然后再使用结果进行选择。有没有更有效的方法呢?

2 个答案:

答案 0 :(得分:3)

您可以在JOIN字段上自我LastName

Select  P2.*
From    Person  P
Join    Person  P2  On  P2.LastName = P.LastName
Where   P.FirstName = 'Adam';

答案 1 :(得分:0)

您也可以这样做:

select P2.* 
from Person P1
inner join Person P2 on P2.lastname = P1.LastName and P1.FirstName = 'adam'