これらの 2 つのテーブルを考えると、テーブル A1 には同じ値「a」を持つ 2 つの行があります。
A1 a a
テーブル A2 には、主キー値 A、B を持つ 2 つの行があり、それらは「a」に関連付けられています
A2 PK col2 あ バ
私が欲しいのは、この結果でA1とA2を結合することです
を B
明らかに内部結合はここでは機能しません。SQL Server 2008 でこれを行う方法はありますか?
これらの 2 つのテーブルを考えると、テーブル A1 には同じ値「a」を持つ 2 つの行があります。
A1 a a
テーブル A2 には、主キー値 A、B を持つ 2 つの行があり、それらは「a」に関連付けられています
A2 PK col2 あ バ
私が欲しいのは、この結果でA1とA2を結合することです
を B
明らかに内部結合はここでは機能しません。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 を使用して重複する値を制限します。」少なくとも Postgres 9 以降では DISTINCT は既存の重複を排除しますが、その出現を防止または制限しません。
投稿には結合条件がないため、クロス結合する必要があります。クロス結合を適用し、個別を使用して重複値を制限しました。
Select distinct A1.Col1, A2.Pk
From A1 ,A2