I'm not sure what you're asking, as joining works just fine for table variables. See this example:
declare @table as table (Col1 int, Col2 varchar(100))
declare @table2 as table (Col1 int, Col2 varchar(100))
insert into @table
select 1, 'A'
union all
select 1, 'C'
union all
select 1, 'D'
insert into @table2
select 2, 'A'
union all
select 2, 'B'
union all
select 2, 'D'
union all
select 2, 'E'
select
*
from
@table t1 full outer join
@table2 t2 on t1.Col2 = t2.Col2
select
*
from
@table t1 left join
@table2 t2 on t1.Col2 = t2.Col2
select
*
from
@table t1 right join
@table2 t2 on t1.Col2 = t2.Col2
select
*
from
@table t1 join
@table2 t2 on t1.Col2 = t2.Col2