Sql server 2008 在sql 2008 R2中,如何将一个表中的2列与另一个表中的2列连接起来?

Sql server 2008 在sql 2008 R2中,如何将一个表中的2列与另一个表中的2列连接起来?,sql-server-2008,inner-join,multiple-columns,Sql Server 2008,Inner Join,Multiple Columns,我有两张桌子。在表1中,我有两列——cust_npa和cust_nxx。在表2中,我有两列——valid\u npa和valid\u nxx。表2.valid\u npa中的每个条目在表2.valid\u nxx中都有相应的条目 valid_npa valid_nxx 201 551 201 552 201 553 202 851 202 852 我希望返回表1中所有包含表2中的valid_nap和valid_

我有两张桌子。在表1中,我有两列——cust_npa和cust_nxx。在表2中,我有两列——valid\u npa和valid\u nxx。表2.valid\u npa中的每个条目在表2.valid\u nxx中都有相应的条目

valid_npa   valid_nxx
201         551
201         552
201         553
202         851
202         852
我希望返回表1中所有包含表2中的valid_nap和valid_nxx组合的行

select * from table_A as A
inner join table_B as B
on A.id = B.id and A.name = B.name

例如,表1中cust_npa为201、cust_nxx为852的行将不会返回(因为这不是表2中的有效组合)。

表1和表2在不同的数据库中有关系吗?如果它们在不同的数据库中,您可以创建同义词并使用它们,如果不同的表中根本没有。谢谢,这非常有帮助。我对整个SQL游戏还不熟悉,这似乎很简单——当然,事后诸葛亮就是这样。如果我在寻找相反的结果,即返回表1中所有没有表2中的valid\u npa和valid\u nxx组合的行,我会使用运算符吗?有什么原因导致此查询产生与上面提供的查询明显不同的结果吗?Intersect将返回不同的结果,而没有distinct的内部联接将返回多个相同的行。哦,这很有意义。在我的例子中,我希望看到多个相同的行。谢谢你为我澄清这一点!
select valid_npa, valid_nxx from table2
intersect
select cust_npa, cust_nxx from table1