【发布时间】:2016-08-15 12:12:35
【问题描述】:
所以我有一种情况,表Partners 与名为Regions 的表具有一对一关系,并且通过名为Destinations 的交集表与同一个表存在一对多关系.下面我很好的命名约定应该可以帮助您弄清楚我的意思。
Regions
======================
id | name
======================
1 | "United States"
2 | "Mother Russia"
3 | "Belize"
Partners
=================================
id | name | region_id
=================================
1 | "B Obama" | 1
2 | "V Putin" | 2
Destinations
==============================
partner_id | region_id
==============================
1 | 2
1 | 3
2 | 1
2 | 3
我想要的是一个返回类似
的结果的查询=======================================================
partner_name | partner_region | destination_region
=======================================================
"B Obama" | "United States" | "Mother Russia"
"B Obama" | "United States" | "Belize"
"V Putin" | "Mother Russia" | "United States"
"V Putin" | "Mother Russia" | "Belize"
问题是我不知道如何在Regions 表上加入两次才能进行此查询。我知道我想要的是这样的
SELECT Partners.name AS partner_name,
Regions.name AS partner_region,
??? AS destination_region
FROM
Partners INNER JOIN Regions ON Partners.region_id=Regions.id
INNER JOIN Destinations ON Partners.id=Destinations.partner_id
但我对上面的??? 填写什么感到困惑,因为Regions 已经加入Partners。
【问题讨论】:
标签: sql sql-server tsql database-design