专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Oracle开发

如何取出没有关联数据的字段值

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
怎么取出没有关联数据的字段值
有两个表
a表:
id      name1    name 2
1        aa             bb
2        aaa           bbb
3        aaaa         bbbb

b表:
aid   num1     num2
1      70           100
2      71            200
其中a表id与b表aid关联

如何能查出下面的结果:
a.id   a.nam1  a.name2 b.num2
1         aa           bb           100
2         aaa         bbb         200
3         aaaa       bbbb       


------解决思路----------------------

select a.*,b.num2 from a,b where a.id =b.id(+)


------解决思路----------------------
引用:
用select a.*,b.num2 from a,b where a.id =b.id(+) and (b.num1=70 or b.num1=71)取不出来,
只能是select a.*,bb.num2 from a,(select aid,num2 from b where b.num1=70 or b.num1=71 )bb  where a.id =bb.id(+),不是很明白为什么要这么写。


select a.*,b.num2 from a,b where a.id =b.id(+) and (b.num1=70 or b.num1=71)  这个是左关联后再去取num1 in(70,71)
select a.*,bb.num2 from a,(select aid,num2 from b where b.num1=70 or b.num1=71 )bb  where a.id =bb.id(+) 这个是先num1 in(70,71) 再去取左关联,所以a表的id=3 会出来。你要是不理解,你在b表添加一条aid=3 的数据,再运行着两条语句你就明白。
 (b.num1=70 or b.num1=71) 貌似直接写 b.num1 in(70,71)会好的。



------解决思路----------------------
select a.*,(select num2 from b where aid=a.id) num2 from a;
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: