There are three tables and column have comma separated values as shown below: In table 1 there is a single value(TableValue1) and some values needs to get it from table2(Table2Name1 - get values on basis of name in table 2). In table 3 there is a group of sets present in table 2(Table3Name1 - need to fetch values from table 2 on basis of name).
Table 1 :
| ID | Name | Values | 
|---|---|---|
| 1 | test 1 | Table1Value1,Table2Name1,Table3Name1 | 
| 2 | test 2 | Table1Value2,Table2Name2,Table2Name4,Table3Name2 | 
Table 2 :
| Name | Values | 
|---|---|
| Table2Name1 | A,B,C | 
| Table2Name2 | D,E,F | 
| Table2Name3 | G,H | 
| Table2Name4 | I,J,K | 
Table 3:
| Name | Values | 
|---|---|
| Table3Name1 | Table2Name1,Table2Name3 | 
| Table3Name2 | Table2Name2,Table2Name3 | 
Result, needs to be like below :
| ID | Name | Values | 
|---|---|---|
| 1 | test 1 | table1value1,A,B,C,G,H | 
| 2 | test 2 | Table1Value2,D,E,F,I,J,K,G,H | 
select * 
from ( select tbl.id,tbl.name,tbl.value,table2.value 
       from (select id,name,value 
             from table1 
             cross apply string_split(data,',')) as tbl 
       left join table2 on tbl.value = table2.name) as A 
       left join(select b.table3name,tb.value,table2.[values]
                 from(select tbl3.table3name,tbl3.value 
                      from(select tbl3.name,tbl3.[values],value
                           from table3 
                           cross apply string_split(tbl3.[values],',')) as tbl3) as tb 
left join table2 on table2.name = tb.value) as B on A.value = B.name
but its not showing correct data.



