SQL Server中如何编写主外键关联表的跨表查询语句?
解决方案
直接用内连接(INNER JOIN)关联两张表即可,两表已经通过PersonID字段建立了主外键关联,把这个字段作为关联匹配条件,提取你需要的两个字段就行。
在SSMS的查询窗口执行下面的代码:
SELECT p.FirstName, o.OrderNumber FROM PersonsTable p INNER JOIN OrdersTable o ON p.PersonID = o.PersonID
说明
- 这里给两张表分别起了短别名
p和o,写起来更简洁,也能避免多表存在同名字段时的引用歧义 INNER JOIN的逻辑是只返回两表中关联字段能完全匹配的记录,正好符合你要取两表关联结果的需求- 基于你给出的测试数据,查询返回结果如下:
| FirstName | OrderNumber |
|---|---|
| Hansen | 24562 |
| Svendson | 22456 |
| Pettersen | 77895 |
| Pettersen | 44678 |
补充:如果之后你需要把没有下过单的人员也查出来,把
INNER JOIN换成LEFT JOIN就可以,当前需求用内连接是最准确的。
内容的提问来源于stack exchange,提问作者user19129062
相关产品推荐
相关产品推荐

