我有 2 个简单的表,我想用它们执行 INNER JOIN,但问题是我得到了重复的结果(对于列 str1 和 str2):
CREATE TABLE #A (Id INT, str1 nvarchar(50), str2 nvarchar(50))
insert into #A values (1, 'a', 'b')
insert into #A values (2, 'a', 'b')
CREATE TABLE #B (Id INT, str1 nvarchar(50), str2 nvarchar(50))
insert into #B values (7, 'a', 'b')
insert into #B values (8, 'a', 'b')
select * from #A a
INNER JOIN #B b ON a.str1 = b.str1 AND a.str2 = b.str2
当我真正想要 2 条记录时,它给了我 4 条记录。
我得到了什么:
编号 | str1 | str2|编号 | str1 |字符串2
1 |一个 |乙| 7 |一个 |乙
2 |一个 |乙| 7 |一个 |乙
1 |一个 |乙| 8 |一个 |乙
2 |一个 |乙| 8 |一个 |乙
我真正想要的:
1个|乙| 7 |一个 |乙
2个|乙| 8 |一个 |乙
有人可以帮忙吗?我知道这可以使用游标和循环来实现,但我想避免它并且仅在可能的情况下使用某种类型的 JOIN 。