【发布时间】:2014-02-24 11:46:15
【问题描述】:
所以我有三个表...结构像这样
位置表
LocationID LocationName
1 Location 1
2 Location 2
3 Location 3
子区域表
SubAreaID LocationID SubAreaName
1 1 SubName1
2 1 SubName2
3 2 SubName3
4 2 SubName4
还有一个详细信息表
SubAreaID LocationID UserName
1 1 Bob
2 1 Frank
3 2 Jeff
null 3 Dave
- 每个位置都可以有一个子区域
- 每个子区域都可以有细节
- 每个子区域都必须有一个位置
- 每个细节都可以有一个子区域
-
每个细节都必须有一个位置
理想情况下,结果如下所示。我将如何构建查询?
LOCATION NAME SUB AREA NAME USERNAME Location 1 SubName1 Bob Location 1 SubName2 Frank Location 2 SubName3 Jeff Location 2 SubName4 null Location 3 null Dave
真正让我失望的是空值的可能性
SELECT a.LocationID, a.LocationName, b.SubAreaID, b.SubAreaName, c.UserName
FROM Location a
JOIN SubArea b ON a.LocationID = b.LocationID
FULL JOIN Detail c ON a.LocationID = c.LocationID
但是,这不会产生预期的结果。有什么意见/建议吗?
【问题讨论】: