SQL 加入查找相关代码和地址

SQL join to find relavant codes and address

下面table包含地址信息。

代码 代码1 代码2 地址
DAN001 DAN004 DAN005 ABC,纽约。
DAN004 DAN004 DAN004 印度德里
DAN005 DAN005 DAN005 曾经,比利时

请在下面找到 table 详细信息:

每个代码都有关联的代码 1 和代码 2 以及最后一列的地址。 例如:

我正在寻找单个 SQL 查询,它将为我提供关联的 code1 和 code2 以及给定代码的单个查询中每个代码的对应地址。

我进行了以下查询,但这没有正常工作:

 select a.code, b.code1, b.address code1_address , c.code2, c.address code2_address
 from address a,address b, address c  where a.code='DAN001'
 and a.code1= b.code and a.code2=c.code;

我用的是Oracle10g

异常结果:

DAN004、ABC 纽约、DAN005、EVER 比利时

您只是在寻找 join 吗?

select a.*, a1.address, a2.address
from address a left join
     address a1
     on a1.code = a.code1 left join
     address a2
     on a2.code = a.code2;

这使用 left join 以防任何代码列为空。