【发布时间】:2011-07-14 14:46:16
【问题描述】:
我在同一张表上进行 2 次连接,我想要以下结果:
chnl_ptnr_key type1_ky type2_ky
------------- -------- --------
1 1 null
1 2 null
1 null 3
1 null 4
但是我得到了
chnl_ptnr_key type1_ky type2_ky
------------- -------- --------
1 1 3
1 2 3
1 2 3
1 2 4
我的查询是:
SELECT cp.chnl_ptnr_ky, cpmap1.ky as type1_ky, cpmap2.ky as type2_ky
FROM chnl_ptnr cp
LEFT OUTER JOIN chnl_ptnr_oos_map cpmap1 on (cp.chnl_ptnr_ky = cpmap1.chnl_ptnr_ky and cpmap1.typ = 'TYPE1')
LEFT OUTER JOIN chnl_ptnr_oos_map cpmap2 on (cp.chnl_ptnr_ky = cpmap2.chnl_ptnr_ky and cpmap2.typ = 'TYPE2')
WHERE cp.chnl_ptnr_ky = '1111'
有人可以帮我更改此查询,以便我在 type1_ky 和 type2_ky 中得到空值,该行是从另一个联接返回的?
我需要这种格式,因为我正在尝试将它用于 iBATIS 地图。
非常感谢
【问题讨论】:
-
chnl_ptnr和chnl_ptnr_oos_map的架构是什么? -
非常神秘的名称,不提供表格的数据。
标签: sql join left-join outer-join