如果表A中的列A等于表B中的列B,则从两个表(表A和表b)获得输出

时间:2016-11-03 21:47:08

标签: sql postgresql

所以我有两个表A和B,两个表都有一个列地址。表A具有id1列,表B具有id2列。如果id1和id2列中的值相同,我想获取地址列(可以是表B)。我怎么能在sql命令中这样做?值得一提的是,如果这些列相同,地址也相同或相似,因此地址可以来自任何一个表。我是sql的新手,非常感谢你的帮助。提前致谢

2 个答案:

答案 0 :(得分:0)

你应该试试这个:

Select address 
from tablea as a, table b as b 
where b.id =a.id

答案 1 :(得分:0)

我假设表1中的地址有可能丢失,否则只是选择该字段的问题。我添加了一个case语句来处理,以防万一(heh),但如果没有,你可以用a.address替换整个位

Select a.id1, 
     case when a.address is not null 
        then a.address 
        else b.address end as new_address.
from Table1 A, Table2 B
where a.id1 = b.id2

此外,如果您已经发生了内部和外部联接的组合(或者只是很多联接),那么您将需要添加更明确的联接条件。