多表查询得到一个表,在这个多表查询的代码中插入一个全新的字段,并让该字段的内容根据原来某一字段的值显示不同的内容。
题主可以考虑使用case when,举个例子,学生表关联成绩表,获取成绩,根据成绩是否大于60分,来判断是否及格,这个及格是新字段。
select s.name as '姓名', sc.score as '成绩', case when sc.score >= 60 then '及格' else '不及格' end as '是否及格'
from s join sc on sc.s_id = s.id
通过case when来判断其他字段取值,决定当前字段的值。
这个具体要看你这个新字段和原来某字段之间的转换规则,
如果是简单的枚举值或者范围映射,就用上面的case when;
如果是函数转换关系,就用对应的函数处理,比如获取原字段长度、全部转换成大写、拼接一个字符串等等,
各字段之间用逗号隔开就行了,和查已有的字段没什么区别。比如
--新字段为原字段长度
select 字段1,字段2,length(字段2) as 新字段 from 表
--新字段为原有两个字段拼接
select a.字段1,a.字段2,
b.字段1,b.字段2 ,
concat(a.字段1,b.字段2) as 新字段
from a join b on a.id=b.id
case when 成绩>60 then "合格" else "不合格" end as 是否合格