【发布时间】:2014-10-10 22:48:15
【问题描述】:
我有 3 张桌子,例如:
create table KOPA (MISS VARCHAR2(12), SER NUMBER(10));
create table NOTI (MISS VARCHAR2(12), LAI NUMBER(10), BAI NUMBER(10), ZAI NUMBER(10), KAI UMBER(10));
create table DOSI (MISS VARCHAR2(12), MAI NUMBER(10));
INSERT INTO KOPA (MISS,SER) VALUES ('AAA',123);
INSERT INTO KOPA (MISS,SER) VALUES ('BBB',234);
INSERT INTO KOPA (MISS,SER) VALUES ('CCC',345);
INSERT INTO KOPA (MISS,SER) VALUES ('DDD',456);
INSERT INTO KOPA (MISS,SER) VALUES ('EEE',567);
INSERT INTO KOPA (MISS,SER) VALUES ('TTT',456);
INSERT INTO KOPA (MISS,SER) VALUES ('YYY',567);
INSERT INTO KOPA (MISS,SER) VALUES ('III',456);
INSERT INTO NOTI (MISS,LAI,BAI,ZAI,KAI) VALUES ('AAA',1,2,3,NULL);
INSERT INTO NOTI (MISS,LAI,BAI,ZAI,KAI) VALUES ('BBB',1,2,3,NULL);
INSERT INTO NOTI (MISS,LAI,BAI,ZAI,KAI) VALUES ('CCC',1,2,3,NULL);
INSERT INTO NOTI (MISS,LAI,BAI,ZAI,KAI) VALUES ('FFF',1,2,3,NULL);
INSERT INTO NOTI (MISS,LAI,BAI,ZAI,KAI) VALUES ('GGG',1,2,3,NULL);
INSERT INTO NOTI (MISS,LAI,BAI,ZAI,KAI) VALUES ('HHH',1,2,3,NULL);
INSERT INTO NOTI (MISS,LAI,BAI,ZAI,KAI) VALUES ('III',1,2,3,NULL);
INSERT INTO NOTI (MISS,LAI,BAI,ZAI,KAI) VALUES ('JJJ',1,2,3,NULL);
INSERT INTO NOTI (MISS,LAI,BAI,ZAI,KAI) VALUES ('KKK',1,2,3,NULL);
INSERT INTO NOTI (MISS,LAI,BAI,ZAI,KAI) VALUES ('LLL',1,2,3,NULL);
INSERT INTO DOSI (MISS,MAI) VALUES ('BBB',4);
INSERT INTO DOSI (MISS,MAI) VALUES ('CCC',1);
INSERT INTO DOSI (MISS,MAI) VALUES ('DDD',2);
INSERT INTO DOSI (MISS,MAI) VALUES ('EEE',3);
SELECT * FROM KOPA A;
SELECT * FROM NOTI H;
SELECT * FROM DOSI B;
我要找的结果是:
a.miss a.ser h.lai h.bai h.zai b.miss b.mai
AAA 123 1 2 3 null null
BBB 234 1 2 3 BBB 4
CCC 345 1 2 3 CCC 1
DDD 456 null null null DDD 2
EEE 567 null null null EEE 3
III 456 1 2 3 null null
所以 - 问题是 - 我怎样才能用一张表获得两个外连接? 像这样的:
select z.*,b.*
from (select a.miss,h.lai,h.bai from kopa a,noti h
where a.miss=h.miss and h.lai=1 and h.bai=2)z
full outer join dosi b on b.miss=z.miss
只是,有没有办法在每一行显示a.miss?
【问题讨论】:
标签: sql oracle select outer-join