我正在使用此查询在两个表中查找类似的结果,但是有些数据会重复,我不知道问题可能是什么。 你可以检查这个查询,看看我做错了什么。
各种连接(内部,左侧,右侧和单独连接!返回相同的结果)
select dbo.netss.[CODE]
,dbo.netss.[NUM]
,dbo.netss.[state]
,dbo.netss.[county]
,dbo.netss.[zone]
,dbo.netss.[Mvillage]
,dbo.netss.[Village]
,dbo.netss.[operator]
,dbo.P1.*
from dbo.P1
inner join
dbo.netss
on (dbo.netss.[state]=dbo.p1.[state])
where dbo.P1.Name=dbo.netss.Village
答案 0 :(得分:0)
加入[state]
可能不是你想要的。如果[state]
列中的值在两个表中都不唯一,那么您将获得从dbo.p1到dbo.netss的多个匹配,也可能从dbo.netss到dbo.p1。如下所示,在连接列表中添加更多列,例如:
on dbo.netss.[state] = dbo.p1.[state] and dbo.netss.[county] = dbo.p1.[county] and dbo.netss.[CODE] = dbo.netss.[CODE]
换句话说,加入使行唯一且也在另一个表中的列组合。这将在一个表中定义一个唯一键,该键可以是另一个表的外键。
答案 1 :(得分:0)
--You Can try this
select DISTINCT
dbo.netss.[CODE]
,dbo.netss.[NUM]
,dbo.netss.[state]
,dbo.netss.[county]
,dbo.netss.[zone]
,dbo.netss.[Mvillage]
,dbo.netss.[Village]
,dbo.netss.[operator]
,dbo.P1.*
from dbo.P1
inner join
dbo.netss
on (dbo.netss.[state]=dbo.p1.[state])
where dbo.P1.Name=dbo.netss.Village
----the DISTINCT keywords do eliminate duplicate