【发布时间】:2012-05-22 00:06:40
【问题描述】:
我有一个 SQL Server 2008 数据库。这个数据库有三个表:
人物
- Id
- FullName
- MembershipStatusId (nullable)
- HairStyleId (nullable)
会员状态
- Id
- Name
发型
- Id
- ColorName
- Description
我需要创建一个查询来列出我数据库中的所有人员。因为MembershipStatusId 和HairStyleId 都可以为空,所以我知道我需要进行左外连接。但是,因为有多个表,我不知道该怎么做。通过一个左外连接,我知道我可以做到这一点:
SELECT
p.*,
m.Name as 'MembershipStatus',
-- how do i include the person's hair color as part of my result set?
FROM
Person p LEFT OUTER JOIN
MembershipStatus m ON p.[MembershipStatusId]
但是,我不确定如何为发型名称添加左外连接。有人可以告诉我如何包含人的头发颜色吗?
谢谢!
【问题讨论】:
-
您的两个联接都在主键上,因此根据目前的答案,它相当简单。 (外部联接开始变得棘手,您需要处理两个或更多 X 对多外部联接。)
标签: sql-server-2008 outer-join