一个表关联问题

数据的流 2013-04-17 05:58:55
现在我有两个表
表a:
order_id tel
a中现有一个订单有两条记录
aaa-1000 1580000000
aaa-1000 1580000001
表b:
order_id pp_id
b中对应订单号也有两条记录
aaa-1000 888888
aaa-1000 999999

想要查询出
aaa-1000 1580000000 888888
aaa-1000 1580000001 999999
这样的查询结果sql语句该如何写?
...全文
139 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
疯狂的球球ww 2013-04-18
  • 打赏
  • 举报
回复
麻烦了点 用内连接,楼上的麻烦了点 select a.order_id,tel,pp_id from a join b on a.order_id=b.order_id; 这个能实现
睿智天成 2013-04-18
  • 打赏
  • 举报
回复
你上面2个表存在主键自增列吗?
数据的流 2013-04-18
  • 打赏
  • 举报
回复
引用 2 楼 zxsjh 的回复:
楼上的写法是有问题的,这样会得出4条记录 select a.order_id,a.tel,b.pp_id from (select order_id,tel,rownum num from a)ta, (select order_id,pp_id,rownum num form b) tb where ta.order_id=tb.order_id a……
使用rownum这个方法我也尝试过,如果表中只有这两条记录是可以的,如果表中有大量订单,使用rownum关联就不合适了,这种情况该怎么处理?
数据的流 2013-04-18
  • 打赏
  • 举报
回复
引用 3 楼 shaowei213 的回复:
麻烦了点 用内连接,楼上的麻烦了点 select a.order_id,tel,pp_id from a join b on a.order_id=b.order_id; 这个能实现
这个写法得出的结果也是4条记录,我只想要两条
数据的流 2013-04-18
  • 打赏
  • 举报
回复
引用 6 楼 Rexmax 的回复:
你上面2个表存在主键自增列吗?
如果存在自增列,还有其它处理办法吗?
数据的流 2013-04-18
  • 打赏
  • 举报
回复
感谢各位的回答,解决办法已找到,使用row_number() over()函数——

select a.order_id,m_id,tel from
(select order_id, m_id ,row_number() over(order by order_id) rn from order_mid) a
left join (select order_id, tel ,row_number() over(order by order_id) rn from order_tel) b on a.order_id=b.order_id and a.rn=b.rn
zxsjh 2013-04-17
  • 打赏
  • 举报
回复
楼上的写法是有问题的,这样会得出4条记录 select a.order_id,a.tel,b.pp_id from (select order_id,tel,rownum num from a)ta, (select order_id,pp_id,rownum num form b) tb where ta.order_id=tb.order_id and ta.num=tb.num
Archer_1 2013-04-17
  • 打赏
  • 举报
回复
select a.order_id,a.tel,b.pp_id from a a,b b where a.order_id=b.order_id 

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧