记录工作中遇到的sql问题

今天在工作中遇到了一个需求  是这样的 

有两张表 分别是

user_info 用来存放用户基本信息

 记录工作中遇到的sql问题_第1张图片

gift 存放用户获取的礼物

记录工作中遇到的sql问题_第2张图片

两张表之间以user_id进行关联

当用户每次领取礼物后 我们都会向gift表中插入一条记录

现在 我需要查到 

用户名、用户邮箱以及每个用户共领取了几次礼物

说白了 就是要查出这样的结果集

记录工作中遇到的sql问题_第3张图片

 

好了 话不多说 先贴出sql 再来一步步分析

 

user_name,user_emil,sum(if(ISNULL(gift_id),0,1))

giftNum from user_info as a left join gift as b on a.user_id = b.user_id 

GROUP BY a.user_id

首先 要查出这样的数据 我们要进行表联查然后按用户id分组这是肯定的 

重点就在这啦,自行理解吧 sum(if(ISNULL(gift_id),0,1))

你可能感兴趣的:(工作涨经验)