300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 数组数据通过sql语句转为数据库表衔接到from或join后进行直接或关联查询

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

时间:2021-12-03 01:54:36

相关推荐

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

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 healthfrom service_info sileft 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

结语

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。