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