表A:ID name phone
表B:ID no1 name2 no2 name2 表A的ID 相当于主键
表B的no1和no2 都相当于 外键查出 no1和no2 各自多对应的 phone
我试了下单个查询的话可以做出来:
select b.ID,no1,name1,b.phone from A a,B b where a.ID=no1select b.ID,no2,name2,b.phone from A a,B b where a.ID=no2
现在要得到的新表字段是 :例如下
b.ID, no1, name1, phone, no2, name2, phone
1 001 张三 138*** 007 李四 157***
2 018 小刘 null 002 老马 null
3 123 张俊 158*** 076 小鸠 null
4 056 利水 null 765 守卫 134***
表B:ID no1 name2 no2 name2 表A的ID 相当于主键
表B的no1和no2 都相当于 外键查出 no1和no2 各自多对应的 phone
我试了下单个查询的话可以做出来:
select b.ID,no1,name1,b.phone from A a,B b where a.ID=no1select b.ID,no2,name2,b.phone from A a,B b where a.ID=no2
现在要得到的新表字段是 :例如下
b.ID, no1, name1, phone, no2, name2, phone
1 001 张三 138*** 007 李四 157***
2 018 小刘 null 002 老马 null
3 123 张俊 158*** 076 小鸠 null
4 056 利水 null 765 守卫 134***
解决方案 »
- 如何将csv格式的文件转换为dbf格式?
- ORACLE 数据同步
- 各位大神求教 PLS-00103
- oracle 命名块
- 数据库统计问题
- oracle 10g中 CREATE SEQUENCE 执行的错误 不知道怎么解决了 请大家帮忙!
- sql server中的isdate函数,在ORCLE中用什么代替?
- 本人想了解下oracle。。请各位大侠介绍一两本书来看看吧
- 我在用PL/SQL DEVELOPER编译存储过程时,存储过程死掉了(没有响应),怎么也没法编译了,我想可能是有人在使用它,而我又急着改,这时应
- 关于表数据复制的sql语句研究
- 求助--一个比较诡异的SQL查询的写法
- PL SQL developer中如何批量执行sql脚本文件和procedure?
select b.ID,b.no1,b.name1,a.phone,b.no2,b.name2,c.phone
from A a,B b,A c
where a.ID=b.no1 and c.ID=b.no2
--我觉得你的name也是从A表取的吧
select b.ID,
b.no1,a.name as name1,a.phone as phone1,
b.no2,c.name as name2,c.phone as phone2
from A a,B b,A c
where a.ID=b.no1 and c.ID=b.no2
我用一个条件比如是时间 查询表B等到结果:
select * from where time='2011-5-1'
得到结果如下:
ID, no1, name1, no2, name2
1 001 张三 007 李四
2 018 小刘 0 0
3 123 张俊 076 小鸠
4 0 0 0 0
5 056 利水 765 守卫 结果是0 的这行也是结果必须要的,但是我用了select b.ID,b.no1,b.name1,a.phone,b.no2,b.name2,c.phone
from A a,B b,A c
where a.ID=b.no1 and c.ID=b.no2这个方法查询以后那行结果却不存在了,请问怎加个判断让那行数据存在啊
--加个左连就好了
select b.ID,b.no1,b.name1,a.phone,b.no2,b.name2,c.phone
from A a,B b,A c
where a.ID(+)=b.no1 and c.ID(+)=b.no2