我有一张Contacts
桌子和一张Businesses
桌子,它们通过一张Contacts_vs_Businesses
桌子连接(这是一个多对多的关系)。
我想查询这两个表;如果一个联系人与两个业务相关,我想返回:
- 一行包含所有联系方式和企业 A 的所有详细信息;
- 包含所有联系方式和业务 B 的所有详细信息的行
- 一行包含所有联系方式,但根本没有业务详细信息(好像我刚刚
SELECT
在第一张桌子上做了一个基本操作)
联系人表
ID Contact_Name Contact_Phone
1 Jez Clark 01234 567 890
2 Someone Else 01254 648 654
企业表
ID Business_Name Business_Address
1 A Company 24, A Street, A Town
2 Another Company 43, Another Street, Another Town
Contacts_vs_Businesses
Contact_ID Business_ID
1 1
1 2
2 2
我想返回:
Contact_Name Contact_Phone Business_Name Business_Address
Jez Clark 01234 567 890 A Company 24, A Street, A Town
Jez Clark 01234 567 890 Another Company 43, Another Street, Another Town
Jez Clark 01234 567 890 NULL NULL
我在 SQL Server 2008 R2 上。
我该怎么做(我猜这真的很容易......)?我已经尝试了 OUTER 和 INNER 以及 LEFT/RIGHT 连接的各种排列,但似乎没有一个能给我最后一行结果。
谢谢