1


我尝试从同一个表中获取 2 条不同的记录,并在一次连接中使用不同的键连接,但我得到了两次相同的对象。查询是:

SELECT  ISID, ISISIN, ISNMRC, ISTIME, ISTEXT, ISPZDT, ISZADA, ISPOPL,
     petitioner.POICO, petitioner.PONMAF,  petitioner.POADSI,  petitioner.POIDMA,
     ADSTR, ADPSC,ADCIT,
     bic.BCLCVA, bic.BCBIC, bic.BCPOCP, bic.BCICO,
     emitent.PONMAF, emitent.POICO
    FROM FVIS00 as isin
    left outer join FEPO00 as petitioner on isin.ISZADA = petitioner.POID
    left outer join FEAD00 as address on petitioner.POADSI = address.ADID
    left outer join FVBC00 as bic on isin.ISISIN = bic.BCCDVA
    left outer join FEPO00 as emitent on bic.BCICO = emitent.POICO     

结果图:

<resultMap type="ISIN" id="isin">
    <result property="id" column="ISID"/>
    <result property="isin" column="ISISIN"/>
    <result property="user" column="ISNMRC"/>
    <result property="created" column="ISTIME"/>
    <result property="submited" column="ISPZDT"/>
    <result property="text" column="ISTEXT"/>
    <result property="fee" column="ISPOPL"/>
    <association property="petitioner" javaType="LegalPerson" column="ISZADA">
        <result property="ico" column="POICO"/>
        <result property="name" column="PONMAF"/>
         <association property="address" javaType="Address" column="POADSI">
            <result property="street" column="ADSTR"/>
            <result property="code" column="ADPSC"/>
            <result property="town" column="ADCIT"/>
         </association>
    </association>
    <association property="bic" javaType="BIC" column="BCCDVA">
        <result property="shortName" column="BCLCVA"/>
        <result property="bic" column="BCBIC"/>
        <result property="form" column="BCPOCP"/>
        <result property="ico" column="BCICO"/>
        <association property="emitent" javaType="LegalPerson" column="BCICO" >
            <result property="name" column="PONMAF"/>
            <result property="ico" column="POICO"/>
        </association>
    </association>
</resultMap>

但我总是对请愿者的价值观感到很敏感

##                                                                   |                   petitoner                 |                                                                                              |               emitent                     |                    ##
CS0005001502    22. 08. 2005    07. 05. 2010 11.22:06.000    580,00    47115629    Burza cenných papírů Praha a.s.    11005    Praha 1            Rybná 14                         BAACISBO    list    00486949    47115629    Burza cenných papírů Praha a.s.    PR_LR    převod z SCP
CS0005001544    23. 08. 2005    07. 05. 2010 11.22:06.000    580,00    47115629    Burza cenných papírů Praha a.s.    11005    Praha 1            Rybná 14                         BABCISBO    list    00486949    47115629    Burza cenných papírů Praha a.s.    PR_LR    převod z SCP
CS0005002864    24. 08. 2005    07. 05. 2010 11.22:06.000    580,00    00002127    AERO,                              19904    Praha 9-letňany    Beranových 130    AERO           BAAAERO     zakn    00002127    00002127    AERO, a.s.                         PR_LR    převod z SCP
CS0005002963    25. 08. 2005    07. 05. 2010 11.22:06.000    580,00    47115629    Burza cenných papírů Praha a.s.    11005    Praha 1            Rybná 14          ČKD BLANSKO    BAACKDBK    zakn    00002208    47115629    Burza cenných papírů Praha a.s.    PR_LR    převod z SCP

预期结果:

##                                                             |                   petitoner                 |                                                                                          |            emitent                   |                    ##
CS0005001502  2010-05-07-11.22.06.000000 2005-08-22     580,00   47115629  Burza cenných papírù Praha a.s.         11005   Praha 1               Rybná 14                               BAACISBO   list   00486949  null     null                PR_LR převod z SCP
CS0005001544  2010-05-07-11.22.06.000000 2005-08-23     580,00   47115629  Burza cenných papírù Praha a.s.         11005   Praha 1               Rybná 14                               BABCISBO   list   00486949  null     null                PR_LR převod z SCP
CS0005002864  2010-05-07-11.22.06.000000 2005-08-24     580,00   00002127  AERO, a.s.                              19904   Praha 9-letòany       Beranových 130          AERO           BAAAERO    zakn   00002127  00002127 AERO, a.s.          PR_LR převod z SCP
CS0005002963  2010-05-07-11.22.06.000000 2005-08-25     580,00   47115629  Burza cenných papírù Praha a.s.         11005   Praha 1               Rybná 14                ČKD BLANSKO    BAACKDBK   zakn   00002208  00002208 ÈKD Blansko, a.s.   PR_LR převod z SCP 

如您所见,emitent 始终与请愿者具有相同的值,并且两个表的连接键具有不同的值(字段留给 emitent)

我做错了什么还是MyBatis中的错误?

在此先感谢您的任何建议。

阿加塔

4

1 回答 1

1

我怀疑这是一个命名冲突问题——MyBatis 无法区分不同的列。你能重命名冲突的列吗?

选择 ISID、ISISIN、ISNMRC、ISTIME、ISTEXT、ISPZDT、ISZADA、ISPOPL、
     请愿人.POICO, 请愿人.PONMAF, 请愿人.POADSI, 请愿人.POIDMA,
     ADSTR、ADPSC、ADCIT、
     bic.BCLCVA, bic.BCBIC, bic.BCPOCP, bic.BCICO,
     emitent.PONMAF AS emitentPONMAF , emitent.POICO AS emitentPOICO
    FROM FVIS00 原样
    左外加入 FEPO00 作为 isin.ISZADA 上的请愿人 = 请愿人.POID
    左外连接 FEAD00 作为请愿人.POADSI = address.ADID 上的地址
    左外连接 FVBC00 as bic on isin.ISISIN = bic.BCCDVA
    左外连接 FEPO00 作为 bic.BCICO = emitent.POICO 上的发射器

顺便说一下,列和表的名字很丑!FEPO00真的?!:-)

于 2013-11-01T13:17:21.247 回答