我在表t中有一个名为type
的字段,该字段用于显示角色,当键入等于学生时,它返回学生的名字。当键入等于教师时,它返回老师的名字。现在我已经离开了联接两个表,可以离开联接吗一张桌子?如何优化我的代码?
select t.*,(CASE t.type WHEN 'student' THEN tStudent.sname
ELSE tTeacher.tname END) as name
from t
left join t_student tStudent on t.typeid=tStudent .id
left join t_teacher tTeacher on t.typeid=tTeacher.id
最佳答案
这应该工作
select
t.*,
(case
when t.type = 'student' then (select sname from tStudent where id = t.typeid)
else (select tname from tTeacher where id = t.typeid)
end) AS Name
from
t