我有三个表,我试图返回其中两个的详细信息,但是它们没有直接链接,所以我必须使用一个共同的第三个表来加入它们。我正在使用SQL开发人员 - Oracle 11g
这是一个非常简单的表格视图:
Country
CID | CName
-------------
ENG | England
FRA | France
Branch
BID | Branch Name | RegionID | CID
------------------------------
B1 | ABC | R1 | ENG
B2 | DEF | R1 | ENG
B3 | GHI | R2 | FRA
Region
RegionID| RegionName
------------------------------
R1 | UK
R2 | CEurope
这只是一个非常基本的例子来说明。我希望查询返回:
RegionID| RegionName | CID | CName
------------------------------
R1 | UK | ENG | England
R2 | CEurope | FRA | France
所以我想使用分支作为公共链接从Region Table和Country返回数据。
这是我目前的代码似乎不起作用:
Select
c.CID,
c.CName,
r.RegionID,
r.RegionName
FROM
Regions r inner join
(
Branch b inner join Countries c on c.CID = b.BID
)
on b.RegionID = r.RegionID;
答案 0 :(得分:2)
SELECT
c.CID,
c.CName,
r.RegionID,
r.RegionName
FROM
Regions r
INNER JOIN Branch b ON b.RegionID = r.RegionID
INNER JOIN Countries c ON c.CID = b.CID;
答案 1 :(得分:2)
这不是我们加入SQL的方式。你可以考虑看看这个简单的reference。对于您的脚本,您是否需要使用mid-table;您需要使用ON
短语指定要链接的列。以下可能有效:
SELECT c.cid,
c.cname,
r.regionid,
r.regionname
FROM regions r
INNER JOIN branch b
ON b.regionid = r.regionid
INNER JOIN countries c
ON c.cid = b.cid;
答案 2 :(得分:0)
您可能需要在国家/地区的加入中使用b.CID