4

给定这两个表,表 A1 有两行具有相同的值“a”

A1
一个
一个

表 A2 有两行,主键值为 A,B,它们与“a”相关联

A2
PK col2
一个
乙

我想要的是 A1 和 A2 与这个结果的连接

一个
乙

显然内部连接在这里不起作用。有没有办法在 SQL Server 2008 中做到这一点?

4

5 回答 5

9

您可以使用清除重复项DISTINCT

select distinct
  A1.col1,
  A2.PK
from
  A1
  inner join A2
          on A1.col1 = A2.col2
于 2012-05-08T14:36:54.147 回答
1

如果distinct不受限制

SELECT DISTINCT a.*, b.pk
FROM    A1 a
INNER JOIN A2 b ON (a.[test] = b.fk)
于 2012-05-08T14:37:14.140 回答
0

帖子中没有加入条件,所以我们需要进行交叉加入。我已应用交叉连接并使用 distinct 限制重复值。

Select distinct A1.Col1, A2.Pk
From A1 ,A2 
于 2012-05-08T14:36:36.693 回答
0

“并使用 distinct 限制重复值。” 至少在 Postgres 9+ DISTINCT 中消除了现有的重复项,但不阻止或限制其出现。

于 2016-12-27T04:26:58.347 回答
0
SELECT DISTINCT A.* 
FROM aTable AS A 
     INNER JOIN 
     bTable AS B USING(columnId)
于 2019-11-14T11:02:41.550 回答