我有一个正在使用的主表cohort_table
,它在三个不同的列customer_zip
,payer_zip
,provider_zip
中包含数字形式的邮政编码。我想将此表与另一个表city_zip
连接,该表在名为zip3
的列中具有3位数形式的数字邮政编码,而在名为zip5
的列中具有5位数形式的邮政编码每个邮政编码代表的城市city_name
。简而言之,我想加入其中customer_zip
= zip3
,payer_zip
= zip5
和provider_zip
= zip5
的表。运行此命令时,得到的结果就是我想要的:
select *
from cohort_table
left join city_zip on zip3 = customer_zip
但是,当我尝试同时执行所有三个联接时,我总是收到有关表不明确的错误。
select *
from cohort_table
left join city_zip on zip3 = customer_zip
left join city_zip on zip5 = payer_zip
left join city_zip on zip5 = provider_zip
答案 0 :(得分:3)
使用表别名!限定列名!
select *
from cohort_table c left join
city_zip zc3
on zc3.zip3 = c.customer_zip left join
city_zip zc5
on zc5.zip5 = c.payer_zip left join
city_zip zp5
on zp5.zip5 = c.provider_zip;
如果您已阅读我对上一个question的回答,那么您将了解如何执行此操作。这个问题并非完全重复(因此没有解决),因为您引入了第三种查找可能性。