zoukankan      html  css  js  c++  java
  • Mybatis联合查询记录,左连接参数操作

    公司业务需求要做个列表的排序

    而实际排序的字段不再本库中,需要跨库去拿到字段,因为是微服务体系架构,不可能Left join跨库的表,所以决定调用一次跨服务的API拿到排序相关的对象,里面包含需要排序的列

    一块拿到sql中进行排序(因为order by比较方便。。。。)

    然后开始出现了bug,我把跨服务拿到的对象存成List集合,需要在sql中左连接才能使用里面的字段,但是直接这样写就会出现bug:

    ScheduleDictionary

    left join

    (select O.Id AS OrgId,O.`Code`,O.`Name` from #{param.orgModels} O)

    AS Org on ScheduleDictionary.OrganizationId=Org.OrgId

    bug的日志打印大约是这样:

    You have  an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near'_binary'??srjava.util.ArrayListx??↔??a?♥Isizexpwt
    google了一下,只有一个问题是跟这个相关的,所以决定记录一下把,
    问了下领导,这样直接left join一个list集合是不行的,需要拆开:

    拆开的办法是使用union join 例如:select 1 as id,tt as name union join select 2 as id ,dd as name .....最后拼成一张表,
    而我传过去的是个List肯定要用foreach循环

    就这样就可以把它当作一张表去与主表连接了,

    同样也可以拿到 主键或者code去下面进行排序操作了,









  • 相关阅读:
    prometheus TSDB和外部存储系统
    Prometheus时序数据
    Prometheus简介
    Docker网络
    Ingress
    CRI和多容器运行时
    K8s容器存储接口(CSI)介绍
    EasyNVR视频广场点击视频后切换码流才能播放是什么原因?
    EasyNVR更新H265转H264模块内存增长且显示占用高如何解决?
    EasyNVR拉公网RTSP流失败问题调试和解决
  • 原文地址:https://www.cnblogs.com/PrayzzZ/p/10642095.html
Copyright © 2011-2022 走看看