MySQL中遍历结果集根据结果再进行判断查询不同的数据表,将结果集再返回,case when和join的使用

case when then 和Join 的使用,解决条件下,链接同数据表

业务场景:用户和管理员都可以向活动表中添加数据,表中有两个属性,creator_id存放创建者的id,create_type创建人类型,0用户,1管理员,
要求,根据creator_id获取到创建者的名称,方便展示。分别有用户表和管理员表

思路一(常规解决,不建议)

先查出所有数据,再使用java进行遍历,根据type的不同,再根据id查询数据,再将数据赋值,繁琐,低效!!!!

思路二使用sql中的case when 和join联表

case when then end 与If else 类似,不懂,请查询资料

SELECT act.*,
CASE 
WHEN act.create_type=1    THEN sys.admin_name  //联表查询需要的数据
WHEN act.create_type=0 THEN reg.name
ELSE 0 END  AS createName   //别名
FROM activity act 
LEFT JOIN `system_user` sys ON act.creator_id=sys.sys_user_id  //关联表
LEFT JOIN `reg_alumniuser`  reg  ON act.creator_id=reg.reg_alumniuserid //关联表 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值