使用公共第三个表连接SQL中的两个表
我有三个表,我试图返回其中两个表的详细信息,但是它们没有直接链接,所以我必须使用一个通用的第三个表来连接它们。我正在使用SQLDeveloper-Oracle11g 以下是表格的一个非常简单的视图:使用公共第三个表连接SQL中的两个表,sql,join,oracle11g,inner-join,Sql,Join,Oracle11g,Inner Join,我有三个表,我试图返回其中两个表的详细信息,但是它们没有直接链接,所以我必须使用一个通用的第三个表来连接它们。我正在使用SQLDeveloper-Oracle11g 以下是表格的一个非常简单的视图: Country CID | CName ------------- ENG | England FRA | France Branch BID | Branch Name | RegionID | CID ---------------------------
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表和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;
在加入国家/地区时,您可能需要一个b.CID。在加入国家/地区时,您可能需要一个b.CID。这不是我们加入SQL的方式。你可以考虑看看这个简单的东西。对于脚本,无论是否需要使用中间表;您需要使用短语上的
指定要链接的列。以下措施可以奏效:
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;
这不是我们加入SQL的方式。你可以考虑看看这个简单的东西。对于脚本,无论是否需要使用中间表;您需要使用
短语上的指定要链接的列。以下措施可以奏效:
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;
谢谢,这真是个好办法,我不知道为什么我把它复杂化了,现在变得更有意义了。还要感谢霍克,他有同样的答案!谢谢,这真是个好办法,我不知道为什么我把它复杂化了,现在变得更有意义了。还要感谢霍克,他有同样的答案!