2016-09-06 46 views
1

我不知道如何继续进行此操作,因为我是SQL新手。我有两个巨大的每个表与以下类型的数据约70000行:什么是Microsoft SQL加入使用

表1:

A S D1 
A S D2 
A S D3 
B S C 
B S E1 
B S E2 

表2:

A S D1 
B S E2 

我希望得到以下几点:

A S D1 
B S C 
B S E2 

编辑: 我需要所有的数据是表1和d 2.我还需要从表1中丢弃,数据横跨列1和2的比赛,但不能在第3列

+1

是否有任何条件得到上面的数据?使用INNER JOIN,您可以获得A S D1和B S E2。但是B S C呢? –

+0

在编辑中为您的评论添加了答案。 – Zanam

+0

请参阅http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-查询?noredirect = 1#comment391934_333952 – Strawberry

回答

1

我想你需要两个查询:

SELECT TABLE1.A,TABLE1.B,TABLE1.C 
from TABLE1 inner join TABLE2 on TABLE1.A = TABLE2.A and TABLE1.B = TABLE2.B and TABLE1.C = TABLE2.C  

- 在路口

SELECT TABLE1.A,TABLE1.B,TABLE1.C 
from TABLE1 inner join TABLE2 on TABLE1.A = TABLE2.A and TABLE1.B = TABLE2.B 
WHERE TABLE1.C <> TABLE2.C 

- 为丢弃

+0

我想,你的查询只会返回匹配的行,而不是B S C. –