1
我有一种情况,我只需要在特定条件下加入表格。
让我们的承销方案根据条件加入表
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', 1, 0;
insert into feature select 'View content', 2, 0;
现在我想从premiumUser或精简版用户一次只能加入1台。
即
select F.*, U.Name from feature
Inner Join
if condition 1
then
LiteUser U on U.User_Id = F.User_ID
else
PremiumUser U on U.User_Id = F.User_ID
end
反正有没有做到这一点???
我知道这样的事情可以做
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
,但因为我有巨大的表,我不想参加这两个表。 我想要有选择地加入表
_mention的RDBMS_ –
问题的部分似乎是你的数据结构。您应该考虑将所有用户放入单个数据库,然后使用列(外键,偶数)标记“用户类型”。如果您正在复制表格结构,那么这表示您的方法可能存在问题。 – JDB
这不是我的确切数据库设计..这是相当巨大,非常不同....这只是一个样本,我从某处解释我的问题.. – Gautam