当前位置:网站首页>一对多查询(分页)
一对多查询(分页)
2022-08-03 14:38:00 【唯*】
- 一对多查询(不用分页的情况)
使用mybatis的 collection
<collection property="多的属性名" ofType="多的实体类型" >
<result column="多的数据库字段" property="映射到实体类型"></result>
</collection>
eg 一个景区对应多张门票
<collection property="ticketVos" ofType="com.tengyun.dimall.common.vo.ticket.TicketVo">
<result column="bId" property="id"></result>
<result column="ticket_name" property="ticketName"></result>
</collection>
一对多查询不分页的情况下之间左连接多表即可
2. 一对多查询分页(第一种,细品)
SELECT
aa.ID,
aa.scenic_name,
aa.longitude,
aa.latitude,
aa.address,
aa.cover,
C.ticket_name,
c.cancel_rule,
c.available_type,
c.code as code,
e.NAME AS labelName,
d.special_price,
d.day_time
FROM
(
SELECT
a.*
FROM scenic a
<include refid="getTicketApiListByKeyWordsCondition"></include>
<bind name="start" value="ticketApiListQueryVo.fetchStart()"/>
<bind name="limit" value="ticketApiListQueryVo.fetchLimit()"/>
limit #{limit} offset #{start}
)aa
INNER JOIN ticket c ON c.scenic_id = aa.id and c.check_status = 1 and c.is_deleted = 0 and c.on_sale =1
LEFT JOIN ticket_price d ON c.ID = d.ticket_id and d.special_stock > 0
left JOIN scenic_label b ON b.scenic_id = aa.id
LEFT JOIN label e ON e.id = b.label_id
<sql id="getTicketApiListByKeyWordsCondition">
where a.check_status = 1 and a.is_deleted = 0
<if test="ticketApiListQueryVo.labelId != null">
and exists (select 1 from scenic_label r where r.label_id = #{ticketApiListQueryVo.labelId} and r.ticket_id = a.id)
</if>
<if test="ticketApiListQueryVo.keyWords != null and !''.toString().equals(ticketApiListQueryVo.keyWords)">
and (a.scenic_name LIKE concat ( '%', #{ticketApiListQueryVo.keyWords}, '%' )
or exists
( select 1 from ticket t
LEFT JOIN ticket_price d ON t.ID = d.ticket_id
where t.scenic_id = a.id and t.check_status = 1 and t.on_sale = 1
and t.is_deleted = 0 and d.special_stock > 0
<if test="ticketApiListQueryVo.dayTime != null">
and d.day_time = #{ticketApiListQueryVo.dayTime}
</if>
and t.ticket_name like concat ('%', #{ticketApiListQueryVo.keyWords}, '%')
)
)
</if>
边栏推荐
- Leetcode 448. Find All Numbers Disappeared in an Array to Find All Disappeared in an Array of Numbers (simple)
- 未来无法预料
- Mysql 生成排序序号
- DeepLink在转转的实践
- 你把 浏览器滚动事件 玩明白
- 想成为网络安全技术爱好者(可能是黑客)的话,需要看什么书?
- Use Typora+EasyBlogImageForTypora to write a blog and upload pictures quickly without a picture bed
- 0代码4步体验物联网设备上云
- 自己悦表存心
- 你没见过的《老友记》镜头,AI给补出来了|ECCV 2022
猜你喜欢
随机推荐
APT组织最喜欢的工具 Cobalt Strike (CS) 实战
go map转struct【mapstructure库】
LeetCode169:多数元素
大型连锁百货运维审计用什么软件好?有哪些功能?
Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行(含系列目录)。
Jupyter Notebook 交互式编程 & 低代码拖拽式编程 | 数据科学生态下的理想平台
关于 vditor 可否同步飞书文档问题
有希望就是好的
不安装运行时运行.NET程序
LARS (Least Angle Regression)
UE4 解决C盘缓存问题
为什么手动启动GBase 8c数据库中GTM节点,起不来。显示“Run cmd failed:scp: /tmp/gtm_gtm1.server: Permission denied”
How to use redis
PAT乙级-B1015 德才论(25)
2022-随便学学
WMS软件国内主要供应商分析
手摸手带你完成智慧路灯构建及避坑【华为云至简致远】
GMapping原理分析[通俗易懂]
十大免费代理ip软件_国内静态ip代理软件
爬虫——代理搭建、爬取视频网站、爬取新闻、BeautifulSoup4介绍、bs4 遍历文档树、bs4搜索文档树、bs4使用选择器