要实现以下表结构怎么弄?

zmidl 2015-02-05 05:38:14
表A
id name
1 张三
2 李四

表B
id sex
1 男
2 女

要得到表C

id name sex
1 张三 男
2 李四 女

我以前记得sqlserver用到inner join 一个表达式 内联的 现在 oracle 上试了 不行。
不知道 oracle 怎么写。请朋友们指点一下谢谢。
...全文
207 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
aoxuelingshuang 2015-02-07
  • 打赏
  • 举报
回复
select a.id,a.name,b.sex from a left join b on a.id=b.id
lyangsoft 2015-02-06
  • 打赏
  • 举报
回复
引用 楼主 zmidl 的回复:
表A id name 1 张三 2 李四 表B id sex 1 男 2 女 要得到表C id name sex 1 张三 男 2 李四 女 我以前记得sqlserver用到inner join 一个表达式 内联的 现在 oracle 上试了 不行。 不知道 oracle 怎么写。请朋友们指点一下谢谢。
select A.id,A.name,B.sex from A inner join B on A.id=B.id
zmidl 2015-02-06
  • 打赏
  • 举报
回复
可以了 不用A.字段,B.字段了 两个表的字段如果重复 会有 ID ID_1 我直接把需要取得字段名加上去 就可以筛选我要的字段了,非常感谢 'qinhualee'朋友为我耐心解答。
zmidl 2015-02-06
  • 打赏
  • 举报
回复
引用 10 楼 qinhualee 的回复:
你后面的参数搞反了 select * from ( select object.* ,rownum as rn from ( select * from A表 A inner join B表 B on A.id=B.id order by to_number(A.id) ) object where rownum<=100) where rn>0
是不是后面的行数的参数反了? 大于0小于100的才对。非常感谢你为我解答。帮了我很大的忙,我最后再问一下。 这里 select * from 把两张表的字段都取到一张表了 如果我要有选择的取字段 比如 select A.name ,B.sex from 我试着这样改的话就不行了。这个怎么办啊?我把分页里的 from 复制一下贴到外面吗?好像也不对啊。
qinhualee 2015-02-06
  • 打赏
  • 举报
回复
你后面的参数搞反了 select * from ( select object.* ,rownum as rn from ( select * from A表 A inner join B表 B on A.id=B.id order by to_number(A.id) ) object where rownum<=100) where rn>0
zmidl 2015-02-06
  • 打赏
  • 举报
回复
引用 8 楼 qinhualee 的回复:
首先这里应该是A.id A是表的别名,大小写是区分的 还有你最外面的排序要去掉, select * from A表 A inner join B表 B on A.id=B.id order by to_number(A.id) 已经做了排序了,分页是针对这个已经排序的结果的
我现在这样子了 select * from A表 A inner join B表 B on A.id=B.id order by to_number(A.id)//这句外联查询和排序 (select object.*, rownum rn from object where rownum <= (0)) where rn > (100)// 这句分页 我这句分页貌似有问题我自己看不出来 第一句应该可以了
qinhualee 2015-02-06
  • 打赏
  • 举报
回复
首先这里应该是A.id A是表的别名,大小写是区分的 还有你最外面的排序要去掉, select * from A表 A inner join B表 B on A.id=B.id order by to_number(A.id) 已经做了排序了,分页是针对这个已经排序的结果的
zmidl 2015-02-06
  • 打赏
  • 举报
回复
我尝试了 几次 无法实现,我把我的语句贴出来 大家帮忙看看。 首先之前实现的分页: select * from (select object.*, rownum rn from (select * from 我的表 order by to_number(ID字段)) object where rownum <= (100)) where rn > (0) order by to_number(ID字段) 分页100行 0~100 现在实现的外联 select a.name,b.sex from A表 a inner join carinfo B表 b on a.id=B.id 现在 我尝试好几种方法 都不能 实现外联以后的分页,我现在错误的写法如下 select A.name,B.sex (select object.*, rownum rn from (select * from A表 A inner join B表 B on A.id=B.id order by to_number(a.id)) object where rownum <= (100)) where rn > (0) order by to_number(a.id) 是哪里不对劲了,提示说是 a.id 这里错误
绕天涯_2014 2015-02-06
  • 打赏
  • 举报
回复
select A.id,A.name,B.sex from A left join B on A.id=B.id
zmidl 2015-02-06
  • 打赏
  • 举报
回复
实现了,我试了下标准SQL 也可以了。我接着实现套上之前的 分页语句 实现100行数据一个 datatable 集合 绑定控件
zmidl 2015-02-06
  • 打赏
  • 举报
回复
引用 1 楼 qinhualee 的回复:
一样的吧 select A.id,A.name,B.sex from A inner join B on A.id=B.id 你的语句是怎么写的?
select a.name as 姓名,b.cargategory as 类型 from carownersinfo a,carinfo b where a.carownerid(+)=b.carownerid 昨晚百度了这个语句 实现了 ,但是 套上之前的分页语句 又不行了。
不写代码的钦 2015-02-05
  • 打赏
  • 举报
回复
sql标准语句可以用啊。
qinhualee 2015-02-05
  • 打赏
  • 举报
回复
一样的吧 select A.id,A.name,B.sex from A inner join B on A.id=B.id 你的语句是怎么写的?
随机开仓,止盈1~2个点,止损1~20个点能实现盈利正期望吗?《从编程小白到量化宗师之路》系列课程是一套综合性实战课程,涵盖股票,期货,虚拟货币等的交易方法和策略手段。《m单位止盈 n单位止损的方式,能不能实现盈利?》是本系列的第四个中级课程。本网站的课程宗旨是缩短个人或小型投资者与大型机构投资者之间的的差距。课程内容从交易者经常见到,经常思考的问题开始,通过分析成交后的盈亏分布,建立模型,刻画问题,并对问题以数学的方式进行了达。从而得出结论。与市面上的其他理论课程不同,本课程注重实战,注重结果,全部模型代码均已经上传发,学员上课后,可以使用自己的tick数据,进行分析。如果获取tick数据有疑问,可以参考课程:《期货CTP高频数据Tick下载》 https://edu.csdn.net/course/detail/24783本课程能够解答的问题有:1)请问1单位止盈,3单位止损的系统是否能实现正期望值? https://www.zhihu.com/question/423194389/answer/14989174122)抢帽子交易是什么意思?为什么有的人能够成功,说是取款机,而有的人说风险巨大,是老虎机。看过这个课程,您将会知道:a) 这类问题的究极解决方案,直达问题核心,不再纠结原因b)构建一段时间可用的交易策略c)知道“没有不变的策略”的原因  

17,090

社区成员

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

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