Or - you can use table variables, temp tables, views or derived tables:
Create View data1 As Select * From tablea;
Go
Create View data2 As Select * From tableb;
Go
Then use the views:
Select *
From data1 d1
Join data2 d2 On ...
Where ...
Declare @data1 As table (col1 int, col2 varchar(30));
Insert Into @data1 (col1, col2)
Select Col1, Col2 From someTable;
Declare @data2 As table (col1 int, col2 varchar(30));
Insert Into @data1 (col1, col2)
Select Col1, Col2 From someOtherTable;
Select *
From @data1 d1
Join @data2 d2 On ...
Where ...
Or - common-table expressions (as @mike01 outlined) - or derived tables:
Select *
From (Select * From data1) d1
Join (Select * From data2) d2 On ...
Where ...
SQL Server does not have arrays - we have tables - which is much more powerful than an array.