鉴于这两个表 表A1有两行具有相同的值'a'
A1 a a
表A2有两行主键值A,B,它们与'a'
相关联A2 PK col2 A a B a
我想要的是A1和A2与此结果的连接
a A a B
显然内部联接在这里不起作用。有没有办法在SQL Server 2008中执行此操作?
答案 0 :(得分:5)
您可以使用DISTINCT
select distinct
A1.col1,
A2.PK
from
A1
inner join A2
on A1.col1 = A2.col2
答案 1 :(得分:1)
如果distinct
不受限制
SELECT DISTINCT a.*, b.pk
FROM A1 a
INNER JOIN A2 b ON (a.[test] = b.fk)
答案 2 :(得分:0)
帖子中没有加入条件,所以我们需要进行交叉加入。我已应用交叉连接并使用distinct来限制重复值。
Select distinct A1.Col1, A2.Pk
From A1 ,A2
答案 3 :(得分:0)
“并使用distinct限制重复值。” 至少在Postgre 9+中,DISTINCT消除了现有的副本,但没有阻止或限制其出现。
答案 4 :(得分:0)
SELECT DISTINCT A.*
FROM aTable AS A
INNER JOIN
bTable AS B USING(columnId)