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 //关联表
最后
以上就是想人陪蓝天最近收集整理的关于MySQL中遍历结果集根据结果再进行判断查询不同的数据表,将结果集再返回,case when和join的使用的全部内容,更多相关MySQL中遍历结果集根据结果再进行判断查询不同的数据表,将结果集再返回,case内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复