作者Talenius (Harmonic Inspirations)
看板Database
标题[SQL ] 查询多个表资料
时间Wed Feb 8 14:53:10 2017
(针对
SQL 语言的问题,用这个标题。请用 Ctrl+Y 砍掉这行)
资料库名称:SQL Server
资料库版本:2014
内容/问题描述:
有三个表,分别为A、B、C
表A
Aid Bid Cid
a111 1 1
a112 2 1
a113 1 1
表B
Bid BName
1 S
2 D
3 C
表C
Bid Cid CName
1 1 S1
1 2 S2
2 1 D1
3 1 C1
现在需要把表A的Bid、Cid分别换成表B的BName、C的CName,格式内容如:
Aid BName CName
a111 S S1
a112 D D1
a113 S S1
但是却是如下:(错误)
Aid BName CName
a111 S S1
a112 D S2←错,应为D1
a113 S D1←错,应为S1
其程式如下:(错误)
SELECT 表A.Aid, 表B.BName, 表C.CName
FROM 表A JOIN 表B ON 表A.Bid = 表B.Bid
JOIN 表C ON 表A.Cid = 表C.Cid
抓表B的BName应无问题
但是抓表C时,因需要表C的Cid与表B的Bid条件同时成立才能抓正确的CName
不然它似乎直接依表C的Cid顺序抓
不清楚如何修正这里的写法
恳请提供宝贵建议
谢谢
--
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.131.84.78
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1486536793.A.87C.html
※ 编辑: Talenius (36.230.24.245), 02/08/2017 19:41:43
1F:→ billy522: JOIN 表C ON 表A.Cid = 表C.Cid and 表A.Bid = 表C.Bid 02/08 20:42
2F:→ Talenius: 感谢b大救援 02/09 08:00