Mybatis


  选择id =“ selectPlur” parameterType =“ map” resultMap =“ elementResultMap”
      $ {sql}
    /选择


MySQL的


  从*中选择*(从I_NO = 1的ELEMENT中选择*)
   内部联接(从I_NO = 3的ELEMENT中选择*)T2使用(G_NO)
   内部联接(从ELEMENT中选择*,其中I_NO = 5)T3使用(G_NO)


mysql数据结果


  G_NO | I_NO | I_REQ | I_NO | I_REQ | I_NO | I_REQ |
  1 | 1 | 10 | 3 | 20 | 5 | 1 |
  4 | 1 | 100 | 3 | 10 | 5 | 1 |


阿贾克斯结果


  [0]“ gNo”:1
   “ iNo”:1
   “ iReq”:10
  [1]“ gNo”:4
   “ iNo”:1
   “ iReq”:100


阿贾克斯结果是我想要的


  [0]“ gNo”:1
   “ iNo”:1
   “ iReq”:10
   “ iNo”:3
   “ iReq”:20
   “ iNo”:5
   “ iReq”:1
  [1]“ gNo”:4
   “ iNo”:1
   “ iReq”:100
   “ iNo”:3
   “ iReq”:10
   “ iNo”:5
   “ iReq”:1


在mySQL中,我执行“ mysql”语句,并返回想要的内容,例如“ mysql数据结果”。
但是我在月食时使用mybatis
由于属性名称的原因,结果只有一个“ iNo”和“ iReq”,例如“ ajax result”
如何获得“我想要的ajax结果”之类的结果?

最佳答案

您不能直接执行此操作,因为大多数JSON实现do not support都会重复键。

您可能需要更改返回给客户端的数据的结构,例如重命名以下列:

select G_NO, T1.I_NO AS T1_I_NO, T1.I_REQ AS T1_I_REQ,
       T2.I_NO AS T2_I_NO, T2.I_REQ AS T2_I_REQ,
       T3.I_NO AS T3_I_NO, T3.I_REQ AS T3_I_REQ
  from (select * from ELEMENT where I_NO=1) T1
  inner join (select * from ELEMENT where I_NO=3) T2 using (G_NO)
  inner join ( select * from ELEMENT where I_NO=5) T3 using (G_NO)


在这种情况下,结果将是

[0]"gNo": 1
   "t1INo": 1
   "t1IReq": 10
   "t2INo": 3
   "t2IReq": 20
   "t3INo": 5
   "t3IReq": 1
[1]"gNo": 4
   "t1INo": 1
   "t1IReq": 100
   "t2INo": 3
   "t2IReq": 10
   "t3INo": 5
   "t3IReq": 1

09-25 22:18