mysql操作查询结果需要使用查询表的字段定义类型来查询不同表的字段时,可以使用case when then else end来解决

        mysql操作查询结果需要使用查询表的字段定义类型来查询不同表的字段时,可以使用case when then else end来解决

Case具有两种格式。简单Case函数和Case搜索函数。 

--简单Case函数 
CASE sex 
         WHEN '1' THEN '男' 
         WHEN '2' THEN '女' 
ELSE '其他' END 
--Case搜索函数 
CASE WHEN sex = '1' THEN '男' 
         WHEN sex = '2' THEN '女' 

ELSE '其他' END

创建表一:奖罚表(reward)

one_idnametype(A.学生 B.老师)connetId(连接表id)content
1记过AS1上课睡觉
2奖励AS2帮助困难人士
3记过BT1旷工

创建表二:教师表(teacher)

teacher_idnameaddressphone
T1小红中国13455444444
T2小明中国13211111111
T3小白中国13512345678

创建表三:学生表(student)

student_idnameclass_idphone
S1小黑0113211111112
S2小李0213211111113
S3小丽0313211111114

对不同类型的人进行不同的表字段关联:

SELECT
	r.one_id,
	r.name,        
        CASE WHEN r.type = 'A' THEN "学生"
        ELSE "老师" END AS type,        
        CASE WHEN r.type = 'A' THEN (SELECT student.name FROM student WHERE student.student_id = r.connetId)
	ELSE (SELECT teacher.name FROM teacher where teacher.teacher_id = r.connetId) END AS rewardName,
	r.content
FROM
	reward r
	
结果:

one_idnametyperewardNamecontent
1记过学生小黑上课睡觉
2奖励学生小李帮助困难人士
3记过老师小红旷工
如有什么错误,欢迎指出。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值