2013-11-01 62 views
1


我嘗試從同一個表中獲取2個不同的記錄,並在一個連接中使用不同的鍵連接,但是我獲得了兩次相同的對象。查詢是:MyBatis - 在同一個表上加入返回錯誤的值

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> 

,但我總是得到emitent值請願

##                 |     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的?

在此先感謝您的任何建議。

阿加塔

+0

您是否使用其命令行界面直接針對數據庫(不含MyBatis)運行查詢? –

+0

當在終端上運行時,'預期結果'從查詢中輸出。 – agad

回答

1

我懷疑的是,它的命名 - 衝突的問題 - 的MyBatis無法區分不同的列。你可以重命名衝突列嗎?

 
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 AS emitentPONMAF, emitent.POICO AS emitentPOICO 
    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 

順便提一下,列和表格的名字很奇怪! FEPO00真的嗎?! :-)

+0

謝謝!!!! :-)名字很可怕。這是20歲的系統:-(有些人仍然認爲這是最好的系統: - & – agad

+0

你有我衷心的同情! –