2017-02-23 38 views
-1

我發佈了一個即將嘗試完成的嘗試的圖片我嘗試了所有可以在網上找到的代碼,但似乎沒有任何工作。 example具有多個條件的Oracle連接表

這裏是我正在嘗試使用的代碼片段。我是否在正確的軌道上? PS。它的Oracle數據庫

SELECT 
 
    q1.x, q1.y, q2.z, ... 
 
FROM 
 
    (SELECT ... FROM ...) q1 
 
    LEFT JOIN 
 
    (SELECT ... FROM ...) q2 
 
     ON q1.column = q2.column

感謝您的幫助!

回答

0

您需要在Table1.NUM2加入表2兩次,一次在Table1.NUM1,一旦:

SELECT 
    t1.A, t1.NUM1, t1.NUM2, t2a.TEXT AS TEXT1, t2b.TEXT AS TEXT2 
FROM 
    Table1 t1 
    INNER JOIN Table2 t2a 
     ON t1.NUM1 = t2a.NUM 
    INNER JOIN Table2 t2b 
     ON t1.NUM2 = t2b.NUM 

如果表2中的行丟失,並且在這種情況下仍希望包含表1的行,那麼也可以使用LEFT JOINS。

爲了能夠識別表2的2個實例,您需要給它們不同的別名。表1中的別名僅僅是爲了方便。

1

除非我失去了一些高深的,這是隻有兩個連接:

select t1.*, t2a.text as text1, t2a.text as text2 
from t1 join 
    t2 t2a 
    on t2a.num = t1.num1 join 
    t2 t2b 
    on t2b.num = t1.num2;