2 double7y double7y 于 2015.07.10 11:57 提问

plsql多表联系查询的问题

请教plsql问题:
表A
车次 出发城市 目的城市
K56 SZ GZ
K57 ZH BJ

表B
城市二字码 城市中文
SZ 深圳
GZ 广州
ZH 珠海
BJ 北京

编码得到表C如下:
姓名 路程
K56 深圳-广州
K57 珠海-北京

5个回答

guwei4037
guwei4037   Ds   Rxr 2015.07.10 12:29
已采纳
 select a.车次 as 姓名 ,a.城市中文||'-'||b.城市中文 as 路程 from (
select 表A.车次,表B.城市中文 from 表A inner join 表B on 表A.出发城市 = 表B.二字码) a
left join 
(select 表A.车次,表B.城市中文 from 表A inner join 表B on 表A.目的城市 = 表B.二字码) b
on a.车次 = b.车次

图片说明

double7y
double7y ~\(≧▽≦)/~厉害!!学到了!!谢谢大神!
2 年多之前 回复
guwei4037
guwei4037 回复double7y: select a.车次 as 姓名,b.城市中文||'-'||c.城市中文 as 路程 from 表A a,表B b,表B c where a.出发城市 = b.二字码 and a.目的城市 = c.二字码 and b.城市中文 = '深圳' --如果是目的城市,则 c.城市中文 = '深圳'
2 年多之前 回复
double7y
double7y 回复guwei4037: 谢谢O(∩_∩)O~~如果只挑选跟深圳有关的车次,要在哪里加呢?
2 年多之前 回复
guwei4037
guwei4037 再送一个简单的:select a.车次 as 姓名,b.城市中文||'-'||c.城市中文 as 路程 from 表A a,表B b,表B c where a.出发城市 = b.二字码 and a.目的城市 = c.二字码
2 年多之前 回复
danielinbiti
danielinbiti   Ds   Rxr 2015.07.10 12:10
select 车次,F || '-' || T FROM (
 select 车次,(select 城市中文 from 表B where 表B.城市二字码=出发城市) F
 ,(select 城市中文 from 表B where 表B.城市二字码=目的城市) T FROM 表A
 )
yuke198907
yuke198907   2015.07.10 12:06

select a.cc,b1.name,b2.name from A a left join B b1 on b1.cs=a.cfcs left join B b2 on b2.cs=a.mdcs

u013829202
u013829202   Rxr 2015.07.10 13:43

我还以为是什么高深的问题呢? 这是简单的字段合并 || ,

u010875487
u010875487   2015.07.10 17:20

select x.车次 as 车次,concat(x.城市中文,'-',y.城市中文) as 始末站
from
(select a.车次,b.出发城市中文 from 表A a join 表B b where a.出发城市=b.城市) x
left join
(select a.车次,b.结束城市中文 from 表A a join 表B b where a.结束城市=b.城市) y
on x.车次 = y.车次;
还是楼一牛呀。

Csdn user default icon
上传中...
上传图片
插入图片