我有 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 条记录。
我得到了什么:
id | str1 | str2| 编号 | str1 | str2
1 | 一个 | 乙 | 7 | 一个 | 2
| 一个 | 乙 | 7 | 一个 | 1
| 一个 | 乙 | 8 | 一个 | 2
| 一个 | 乙 | 8 | 一个 | b
我真正想要的:
1个| 乙 | 7 | 一个 | b
2 一个 | 乙 | 8 | 一个 | b
任何人都可以帮忙吗?我知道这可以使用游标和循环来实现,但我想避免它,并且尽可能只使用某种类型的 JOIN。