2012-11-17 26 views
1

的我有創建一個表TRKTRIPLEG(如下):的Oracle SQL,使用關係視圖

CREATE TABLE TRKTRIPLEG(
     T#    NUMBER(10)  NOT NULL, 
     LEG#   NUMBER(2)  NOT NULL, 
     DEPARTURE  VARCHAR(30)  NOT NULL, 
     DESTINATION  VARCHAR(30)  NOT NULL, 
     CONSTRAINT TRKTRIPLEG_PKEY PRIMARY KEY (T#, LEG#), 
     CONSTRAINT TRKTRIPLEG_UNIQUE UNIQUE(T#, DEPARTURE, DESTINATION), 
     CONSTRAINT TRKTRIPLEG_FKEY1 FOREIGN KEY (T#) REFERENCES TRKTRIP(T#)); 

,我已經插入一些值到表:

INSERT INTO TRIPLEG VALUES(10, 1, 'Perth', 'Sydney'); 
INSERT INTO TRIPLEG VALUES(10, 2, 'Sydney', 'Brisbane'); 

,我想輸出出來應該是這樣的:

T# ORIGIN DESTINATION1 DESTINATION2 
---- ---------- ------------------- ---------------- 
10 Perth Sydney  Brisbane 

我已經堅持了很長一段時間,似乎不能得到它的權利....任何幫助呢?

回答

0
select o.t#, 
     o.departure, 
     o.destination as destination_1, 
     d.destination as destionation_2 
from tripleg o 
    join tripleg d on o.t# = d.t# and o.departure = d.origin 
+0

謝謝!它接近我想要的......但是,當我插入新值「INSERT INTO TRIPLEG VALUES(11,1,'悉尼','墨爾本');」查詢不會輸出新的數據..爲什麼會這樣?我試圖使用左外連接..但它仍然沒有工作。 – wjs

+0

@wjs,因爲新行對'T#'列具有不同的值。所以它不屬於已經存在的價值10。 –