Mybatis之数组数据通过sql语句转为数据库表衔接到from或join后进行直接或关联查询

  • 外部数据
  • 当前项目表格数据(表名:service_info)
  • 将外部数据转为Table表格,与service_info关联查询
  • 结语

标题很绕,我也没想好怎么命名,所以这里详细说明一下。
某些数据可能并不是存储到当前项目的数据库中,所以我们无论通过合种方式获取到的数据,都需要进行当前项目的某些业务模块的表进行关联,如果我们不想通过程序进行关联,只需要将这些数据通过sql语句转换为数据库表,然后再与当前项目的业务模块的数据库表进行关联查询(JOIN等),这样查询会省去自己分页、排序等麻烦的操作,使用Mybatis的分页、排序等功能就可以,方便很多,废话不多说,看案例吧。

外部数据

[{serviceId: '001',callTime: 100,failureTime: 3,successTime: 97,health: 0.97}, {serviceId: '002',callTime: 300,failureTime: 30,successTime: 270,health: 0.98}, {serviceId: '003',callTime: 500,failureTime: 60,successTime: 440,health: 0.89}
]

当前项目表格数据(表名:service_info)

[{id: '001',serviceName: '服务001'}, {serviceId: '002',serviceName: '服务002'}, {serviceId: '003',serviceName: '服务003'}
]

将外部数据转为Table表格,与service_info关联查询

以下是在Mybatis的xml文件中使用

select si.id AS id,si.name AS name,tmp.success_time AS successTime,tmp.failure_time AS failureTime,tmp.call_time AS callTime,tmp.health AS health
from service_info si
left join (<foreach collection="list" item="item" index="index" separator="union">select'${item.service_id}' as id,'${item.successTime}' as success_time,'${item.failureTime}' as failure_time,'${item.callTimes}' as call_time,'${item.health}' as health</foreach>
) tmp on si.id = tmp.id
order by success_time desc

结语

通过以上的案例,其实就是一种特殊场景的使用而已,所以并不一定会使用到,这里只是自己记录一下。

数组数据通过sql语句转为数据库表衔接到from或join后进行直接或关联查询相关推荐

  1. 导入数据的sql语句,两表互导

    导入数据的sql语句,两表互导 insert into Product(C_ID,Pname,Ptitle,Ptype,IsProduct,onLine,FisrtSort,SecSort,Sort, ...

  2. mysql查询主键sql语句_MySQL数据库-表操作-SQL语句(一)

    1. 数据库操作与存储引擎 1.1   数据库和数据库对象 数据库对象:存储,管理和使用数据的不同结构形式,如:表.视图.存储过程.函数.触发器.事件等. 数据库:存储数据库对象的容器. 数据库分两种 ...

  3. 用sql语句对数据库表中的数据进行增删改

    如何使用sql语句对mysql数据库中表的数据进行增删改 这里新创了一个school数据库,在下面创建一张名为student表,创建student表的sql语句代码如下: #使用school数据库 u ...

  4. 使用 OPEN SQL 语句读取数据库表数据的一个补充练习

    首先按照本系列前一篇文章如何创建最简单的 ABAP 数据库表,以及编码从数据库表中读取数据介绍的步骤,创建两个数据库表: 上图 ZPERSON 表里,包含了5条记录,分别代表5个人的 ID 和 名称. ...

  5. sql获取oracle数据库数据,通过sql语句获取数据库的基本信息

    您可以通过以下几个sql 可以立即了解系统的状况和数据库的状态(仅献给习惯使用sql/plus的人 呵呵 ) (1) 查询oracle 的物理结构 1.1. 查看数据文件 SQL> select ...

  6. Oracle数据库初学者:sql语句创建数据库表空间,建表语句

    1. 表空间的创建 表空间的创建,格式: create tablespace 表空间名 datefile '路径名/表空间名.dbf' size 60M(初始空间大小为:60M) autoextend ...

  7. MySQL删除s表命令_SQLServer数据库sql语句中----删除表数据drop、truncate和delete的用法...

    本文主要向大家介绍了SQLServer数据库sql语句中----删除表数据drop.truncate和delete的用法,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. 虽 ...

  8. 18.sql server横向切分、纵向拆分表、相对平均分配数据、复杂sql语句、数据库存储原理(by-朝夕)

    Database 数据库分库分表 1.横向切分 分库分表案例 需要定义规则来选择表 查询: 规则: 2.纵向拆分表 3.相对平均分配数据 复杂Sql语句 一条Sql语句执行的全过程: 你们觉得数据库是 ...

  9. 28_数据库_第28天(数据库、表及表数据、SQL语句)

    今日内容介绍 1.MySQL数据库 2.SQL语句 01数据库概念 A: 什么是数据库 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增 ...

最新文章

  1. 如何用Python实现多任务版的udp聊天器
  2. Confluence 6 服务器硬件要求指南
  3. 4.6 W 字总结!Java 11—Java 17特性详解
  4. QT-X11-3.1.2.tar.bz2的使用
  5. GLUT及其函数的用法整理
  6. Windows下的cmd小技巧
  7. Java设计模式——桥模式
  8. 关于「无人驾驶」的学习路线...
  9. 开大你的音响,感受HTML5 Audio API带来的视听盛宴
  10. C++设计模式-中介者模式
  11. 关于Unable to load annotation processor factory 的故障
  12. Apache整合Tomcat(转)
  13. DonkeyCar树莓派版的实践
  14. android版信用卡还款提醒器
  15. Java的发展 Java在不同系统下的开发环境 Java语言特性 Java实现跨平台
  16. ios跨线程通知_iOS通知线程处理 - osc_3m34anq6的个人空间 - OSCHINA - 中文开源技术交流社区...
  17. 微信企业号(公众号)开发流程汇总
  18. 漫漫软考路-考后总结
  19. 如何oracle调试存储过程
  20. 数据结构课程设计-(五)行车路线(图的应用)

热门文章

  1. Java——第二次上机(第二部分)
  2. 回归:最小二乘法求解回归模型代码
  3. matlab 压缩感知矩阵_【精读】基于MATLAB的钢筋下料优化算法
  4. 【转】类别catagory的用法
  5. Routing and Switching Essentials ( 版本 6.00) - RSE 6.0 Chapter 5 Exam
  6. mysql事务的隔离c_Mysql事务处理与隔离级别 -cyy
  7. 四则运算之结对作业报告
  8. three.js入门到实战
  9. webscraper多页爬取_Web Scraper 翻页——抓取「滚动加载」类型网页(Web Scraper 高级用法)| 简易数据分析 10...
  10. js打印html表格内容,js实现简单的打印表格