MySQL联合查询

MySQL联合查询,第1张

联合查询的关键字是union,连接查询的关键字是join,而在MySQL手册中,join常常被翻译成"联合查询",但绝大多数书籍和文章中,join被翻译为"连接查询",我们以书籍为准,只是翻译问题,大家注意一下。和连接查询相比,连接查询是多个表的横向组合,而联合查询则是纵向组合。

语法形式如下:

a LEFT JOIN b ON a.id = b.id。

a.name LIKE CONCAT(CONCAT("%","param.name"),"%")。

import com.baomidou.mybatisplus.core.metadata.IPage

dao,Ipage<entity>pageRecord(Ipage<entity>page, Param param)

xml,sql语句不需要做显式分页,Ipage会代替做。

service,Ipage<entity>res = dao.pageRecord(new Page<>(current, size), param)int sum = res.getTotal()List<entity>records = res.getRecords()

在mapper中直接分页没法得到数据总数,此时可以使用MyBatis的自定义分页Ipage,Ipage<entity>page(new Page<>(current, size)),赋值分页参数,返回用Ipage<entity>接收,总数在Ipage.getTotal()里面,数据在Ipage.getRecords()里面。

Ipage会先根据条件执行count(*),再执行SQL获取数据。

select tid id,sum(tct) `count` from (select userID tid,count(*) tct from t2 where userid in (select * from t1 where classNum=1)2 union all select leanID tid,count(*) tct from t2 where leanID in (select * from t1 where classNum=2)) t group by tid


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8614783.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存