我有一个像
这样的查询 select distinct rel.service_code, gsm.mobile_no
from service.gsm gsm, service.gsm_relation rel
where gsm.code = rel.child_service_code(+)
输出结果
service code GSM
(null) 08864124323
null 05534234234
null 03244242423
5000552 02443244324
(null) 01313131313
(null) 01233131231
现在我如何使用输出的服务代码,在这种情况下5000552在gsm表中查找
select mobile_no from service.gsm
where code = '5000552'
输出0773442342并将此数字放在上面的查询中而不是服务代码中。因此,此实例中的所需输出将是
service code GSM
(null) 08864124323
null 05534234234
null 03244242423
0773442342 02443244324
(null) 01313131313
(null) 01233131231
换句话说,我想将这两个查询合并为一个并获得上面的最终结果。因此,不显示服务代码,而是显示相应的数字。
答案 0 :(得分:1)
您希望在您的情况下使用显式联接left outer join
执行此操作。您的原始查询是:
select distinct rel.service_code, gsm.mobile_no
from service.gsm gsm left outer join
service.gsm_relation rel
on gsm.code = rel.child_service_code;
要完成查询,只需添加另一个left outer join
子句:
select distinct gsm2.service_code, gsm.mobile_no
from service.gsm gsm left outer join
service.gsm_relation rel
on gsm.code = rel.child_service_code left outer join
service.gsm gsm2
on rel.service_code = gsm2.service_code;