sql 多表复杂查询
创始人
2025-06-14 08:32:47
0次
sql 多表复杂查询
先联合查询出 name 跟 id的字段
语句如下:select name,stuid from s as s
union
select name,teaid from t as t
然后再用left join 跟上面查出来的这张表进行连接即可;
使用left join..
select
m_id,
case when s.name is not null then s.name else
case when t.teaid is not null then t.name else '空' end
end name
from m
left join s on m_id=s.stuid
left join t on m_id=t.teaid
这个要考虑s表和 t表是否有重复记录的情况。
select id=stuid,name,rolename='学生' from s
union
select id=teaid,name,rolename='教师' from t
这样得到的表为
id,name,rolename
可以建立视图
CREATE VIEW vp as select id=stuid,name,rolename='学生' from s union select id=teaid,name,rolename='教师' from t
以后使用时直接select * from vp 即可。
相关内容