double7y
2015-07-10 03:57
采纳率: 100%
浏览 3.4k

plsql多表联系查询的问题

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

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

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • guwei4037 2015-07-10 04: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.车次
    

    图片说明

    打赏 评论
  • yuke198907 2015-07-10 04: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

    打赏 评论
  • danielinbiti 2015-07-10 04:10
    select 车次,F || '-' || T FROM (
     select 车次,(select 城市中文 from 表B where 表B.城市二字码=出发城市) F
     ,(select 城市中文 from 表B where 表B.城市二字码=目的城市) T FROM 表A
     )
    
    打赏 评论
  • 觅夜的黑 2015-07-10 05:43

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

    打赏 评论
  • M_ing_楠 2015-07-10 09: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.车次;
    还是楼一牛呀。

    打赏 评论

相关推荐 更多相似问题