我有2张桌子。如何创建一个搜索两个表的查询,并仅返回在所有三列中具有完全相同信息的行?
例如,这些是两个表。我可以创建一个返回Steve Heinrich行的查询,因为它们在两个表中都是相同的吗?
ID Firstname Lastname
01 Bob Freeman
02 Steve Heinrich
03 Jill Brown
04 Larry Jordan
ID Firstname Lastname
01 Bill Parson
03 Jack Daniels
02 Steve Heinrich
04 Joe Morgan
答案 0 :(得分:2)
如果它们在两个表中都相同,那么它们就在第一个表中。因此,您可以使用exists
:
select t1.*
from t1
where exists (select 1
from t2
where t1.id = t2.id and t1.firstname = t2.firstname and
t1.lastname = t2.lastname
);
这是标准的SQL,因此它应该适用于所有数据库。
答案 1 :(得分:1)
您需要对ID以及名字和姓氏
执行INNER JOIN答案 2 :(得分:0)
两个表的内连接在所有三列上都有连接条件:
select tableA.*
from
tableA
inner join tableB
where
tableA.Id = tableB.Id
and tableA.FirstName = tableB.FirstName
and tableA.LastName = tableB.LastName
答案 3 :(得分:0)
选择 *
FROM table1
INNER JOIN table2
开启 table1.ID = table2.ID AND
table1.Firstname = table2.Firstname AND
table1.Lastname = table2.Lastname;