给定这两个表,表 A1 有两行具有相同的值“a”
A1 一个 一个
表 A2 有两行,主键值为 A,B,它们与“a”相关联
A2 PK col2 一个 乙
我想要的是 A1 和 A2 与这个结果的连接
一个 乙
显然内部连接在这里不起作用。有没有办法在 SQL Server 2008 中做到这一点?
给定这两个表,表 A1 有两行具有相同的值“a”
A1 一个 一个
表 A2 有两行,主键值为 A,B,它们与“a”相关联
A2 PK col2 一个 乙
我想要的是 A1 和 A2 与这个结果的连接
一个 乙
显然内部连接在这里不起作用。有没有办法在 SQL Server 2008 中做到这一点?
您可以使用清除重复项DISTINCT
select distinct
A1.col1,
A2.PK
from
A1
inner join A2
on A1.col1 = A2.col2
如果distinct
不受限制
SELECT DISTINCT a.*, b.pk
FROM A1 a
INNER JOIN A2 b ON (a.[test] = b.fk)
帖子中没有加入条件,所以我们需要进行交叉加入。我已应用交叉连接并使用 distinct 限制重复值。
Select distinct A1.Col1, A2.Pk
From A1 ,A2
“并使用 distinct 限制重复值。” 至少在 Postgres 9+ DISTINCT 中消除了现有的重复项,但不阻止或限制其出现。
SELECT DISTINCT A.*
FROM aTable AS A
INNER JOIN
bTable AS B USING(columnId)