使用映射连接表 table

Tables join using mapping table

我有 3 个 table:

table1: col1(id), col2(segment), col3(sector), col4(year)

映射table2: col1(segment1) => 值与来自 table1.col2 的值相同, col2(segmnet2) => 值与来自 table3.col2

的值相同

table3: col1(id), col2(segment), col3(sector), col4(year)

现在,我正在执行 FULL OUTER JOIN:

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

但我还需要通过 COL2 - SEGMENT,使用映射 table 加入。 如何正确去做?

如果我没理解错的话,你只需要添加另一个完整的外连接:

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

只是为了确保 - 完全外部联接保留两个表中被联接的所有记录,无论是否匹配!我添加了另一个完整的外部联接,但如果它不完整,请将其更改为您需要的联接类型。