表使用映射表连接

我有3张 table :

table1 :col1(id),col2(segment),col3(扇区),col4(年)

mapping table2 :col1(segment1)=>值与table1.col2相同,col2(segmnet2)=>值与table3.col2相同

table3 :col1(id),col2(segment),col3(扇区),col4(年)

现在,我正在做完全外联接:

select t1.id, t3.id
from table1 t1
full outer join table3 t3 on
t1.year = t3.year and....

但我也需要加入COL2 - SEGMENT, with using mapping table . 怎么做正确呢?

回答(1)

3 years ago

如果我理解正确,您只需要添加另一个完整的外部联接:

select t1.id, t3.id
from table1 t1
full outer join mapping t2 on( t1.col2= t2.col1)
full outer join table3 t3 on(t1.year = t3.year and t2.col2 = t3.col2

只是为了确保 - 无论是否有匹配,完全外部联接都会保持两个表中的所有记录都被连接起来!我已经添加了另一个完整的外部联接,但是如果它没有满,则将其更改为您需要的类型 .