加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 根据条件加入不同的表

发布时间:2020-12-12 07:44:51 所属栏目:MsSql教程 来源:网络整理
导读:create table [premiumuser] (user_id int,name nvarchar(50));create table [liteuser] (user_id int,name nvarchar(50));create table [feature] (id nvarchar(50),user_id int,userkey int);insert into [premiumuser] select 1,'stephen';insert into [p
create table [premiumuser] (user_id int,name nvarchar(50));
create table [liteuser] (user_id int,name nvarchar(50));
create table [feature] (id nvarchar(50),user_id int,userkey int);

insert into [premiumuser] select 1,'stephen';
insert into [premiumuser] select 2,'roger';

insert into [liteuser] select 1,'apollo';
insert into [liteuser] select 2,'venus';

insert into feature select 'Upload content',1,1;
insert into feature select 'Create account',0;
insert into feature select 'View content',2,0;

我想查看功能表中的数据,而不是userid,我想要用户名.
这里的问题是如果userkey为0,则从liteuser表获取用户名,否则从premiumuser表获取用户名.
数据应该是这样的

'Upload content','stephen',1
'Create account','apollo',0
'View content','venus',0

解决方法

试试这个:
select 
    f.id,case when userkey=0 then l.name else p.name end as username
from [feature] f
    left join [liteuser] l on l.user_id = f.user_id
    left join [premium user] p on p.user_id = f.user_id

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读