MyBatis子查询+分组

MyBatis子查询+分组

查询需求:
在这里插入图片描述
如图,传入一个uid,根据该uid返回与该uid同组的全部uid列表。

查询思路:
根据uid找到该uid对应的gname,对gname进行归并,得到唯一的gname,根据gname,返回符合条件的全部uid,并根据uid进行归并。

接口编写

//    根据用户id查询该用户对应组的全部用户id
    List<Integer> getGroupUidByUid(Integer uid);

Mapper编写:

<!--    根据用户id查询该用户对应组的全部用户id-->
    <select id="getGroupUidByUid" resultType="integer" parameterType="integer">
        select uid from user_perms where gname=(select gname from user_perms where uid=#{uid} group by gname) group by uid;
    </select>

** group by概述:**
简单来说:将数据库的数据用’by’后面接的规则进行分组,即将一个大数据库分成一个个相同类型数据在一起的小区域。
group by的语法:

SELECT column_name, function(column_name)  //此处的function()函数是指SQL中的一些聚合函数,例如:MAX(),MIN(),SUM(),AVG(),COUNT()等等
FROM table_name
WHERE column_name operator value    //where条件语句
GROUP BY column_name;    //以某一列分组
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值