[英]How to join the table based on main table column value in SQL Server?
I have the following 3 tables: 我有以下3表:
main_table: main_table:
id,name,table_type
1a,sas,1
2a,saw,1
3a,sdd,2
inst_table inst_table
id,inst_name,rating
1a,sdsdf,3
2a,erer,4
indv_table indv_table
id,ind_name,rating
3a,gbgbg,3
5a,gff,4
How to join the subtables based on main_table column:'table_type'
? 如何基于
main_table column:'table_type'
子表?
Ie, if main table column: table_type = 1
, then it has to join with table:'inst_table'
else table:'indv_table'
即,如果
main table column: table_type = 1
,则它必须与table:'inst_table'
否则与table:'inst_table'
table:'indv_table'
SELECT *
FROM main_table t1
INNER JOIN inst_table t2 ON T1.ID = T2.ID where t1.table_type=1
UNION ALL
SELECT *
FROM main_table T1
INNER JOIN indv_table T3 ON T1.ID = T3.ID where t1.table_type=2
You can left join both sub-tables to main_table: 您可以将两个子表都保留到main_table:
proc sql;
select m.*, i.*, d.*
from main_table as m
left join inst_table as i on m.id=i.id and m.table_type = 1
left join indv_table as d on m.id=d.id and m.table_type ne 1
;
quit;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.