现有一个主表,如下:
id,name
1 aa
2 bb
另外有两个子表,如下:
主表ID id name1
1 1 a
1 2 b
1 3 c
1 4 d
和子表2
主表ID id name2
1 1 张三
1 2 李四
现在想要得到一个查询结果:
主表ID name1 name2
1 a 张三
1 b 李四
1 c
1 d
请问该怎么写呀??各位帮帮忙吧!!
id,name
1 aa
2 bb
另外有两个子表,如下:
主表ID id name1
1 1 a
1 2 b
1 3 c
1 4 d
和子表2
主表ID id name2
1 1 张三
1 2 李四
现在想要得到一个查询结果:
主表ID name1 name2
1 a 张三
1 b 李四
1 c
1 d
请问该怎么写呀??各位帮帮忙吧!!
select b.id,nvl(name1,null),nvl(name2,null)
from b,c
where b.id=c.id(+) ID N NVL(
----- - ----
1 a 张三
2 b 李四
4 d
3 c
form A
right join B on B.主表ID = A.id
left join C on C.主表ID = A.id
将从表的id进行等值连接就可以了
from table a,table1 b,table c
where a.主表ID = b.主表ID
and b.主表ID = c.主表ID(+)
form A
right join B on B.主表ID = A.id
left join C on C.主表ID = A.id
where A.id = 1
insert into A values(1,'aa');
insert into A values(2,'bb');
create table B(主表id number(10),id number(10),name1 varchar2(20));
insert into B values(1,1,'a');
insert into B values(1,2,'b');
insert into B values(1,3,'c');
insert into B values(1,4,'d');
create table C(主表id number(10),id number(10),name2 varchar2(20));
insert into C values(1,1,'张三');
insert into C values(1,2,'李四');
select B.主表ID, B.Name1,C.name2 from A,B,C where A.id(+) = B.id and B.id=C.id(+);