将一列表连接到teradata中其他表的多列

时间:2018-03-23 09:36:52

标签: sql teradata

我有一个表table1,其中列ABAB构成主键),C,{ {1}},DEtable2

我需要提取FABC有效的DE的不同值。 要求是table1.C = table2.F或table1.D = table2.F或table1.E = table2.F

我正在使用的SQL如下:

sel  A,B from table1
inner  join table2
on table1.C=table2.F
**union**
sel  A,B from table1
inner  join table2
on table1.D=table2.F
**union**
sel  A,B from table1
inner  join table2
on table1.E=table2.F

有没有更好的方法,以便所有这些都可以安装在一个连接中?

3 个答案:

答案 0 :(得分:0)

SELECT A,B FROM
table1 
INNER JOIN
table2 ON table1.C=table2.F 
       OR table1.D=table2.F 
       OR table1.E=table2.F

答案 1 :(得分:0)

假设两者都加入table1的PK:

SELECT DISTINCT
    T1.A,
    T1.B
FROM
    table1 AS T1
    INNER JOIN table2 AS T2 ON
        T1.A = T2.A AND
        T1.B = T2.B
WHERE
    T1.C = T2.F OR
    T1.D = T2.F OR
    T1.E = T2.F

答案 2 :(得分:0)

我会尝试以下方法:

PrivateKey privateKey = (PrivateKey) myStore.getKey("privatekey", "yourpasswordhere".toCharArray());