2013-08-26 2 views
0

Im пытаются объединить 2 таблицы в SQLServer,SQLServer слияния заявление 100+ столбцы

Здесь находятся столы,

Table_1 

ID NAME SALARY 
1 MIKE 5000 
2 BRIAN 6000 
3 RAM 8000 

Table_2 

ID NAME AGE 
1 MIKE 50 
2 BRIAN 20 
3 RAM 30 

RESULT 
ID NAME SALARY AGE 
1 MIKE 5000 50 
2 BRIAN 6000 20 
3 RAM 8000 30 

Я попытался левое внешнее соединение,

SELECT TB1.ID, TB1.NAME, TB1.SALARY, TB2.AGE FROM TABLE_1 TB1 
LEFT OUTER JOIN 
TABLE_2 TB2 
ON TB1.ID = TB2.ID 

Это предполагает, как но фактические таблицы, которые я буду использовать, будут иметь 300 столбцов в таблице_1 и 250 столбцах в таблице_2,

Мне нужна таблица table_1 & table_2, столбцы столбцов отсутствуют столбики и отсутствующие столбцы table_2.

ответ

0

Вам необходимо полное внешнее соединение:

SELECT TB1.*, TB2.* 
FROM TABLE_1 TB1 FULL OUTER JOIN TABLE_2 TB2 ON TB1.ID = TB2.ID 

http://www.w3resource.com/sql/joins/perform-a-full-outer-join.php

Это даст все столбцы и строки из обеих таблиц. Если вам нужны только соответствующие строки и все столбцы, вы можете использовать левое внешнее соединение или внутреннее соединение в соответствии с вашими потребностями.

0

Следующая даст вам третью таблицу из указанной второй таблицы

Declare @Sql1 varchar(MAX) -- if you are using SQL server 2000 then @Sql1 varchar(8000) 
Declare @Sql2 varchar(MAX) -- if you are using SQL server 2000 then @Sql2 varchar(8000) 

Set @Sql1 = '' 

SELECT @Sql1 = @Sql1 + 'Table_1.' + c.name + ',' 
FROM sys.columns c 
    JOIN sys.tables t ON c.object_id = t.object_id 
WHERE t.name = 'Table_1' 

SELECT @Sql1 = @Sql1 + 'Table_2.' + c.name + ',' 
FROM sys.columns c 
    JOIN sys.tables t ON c.object_id = t.object_id 
WHERE t.name = 'Table_2' 
and c.name <> 'ID' 

Set @Sql1 = LEFT(@Sql1, (Len(@Sql1) - 1)) 
Print @Sql1 

Set @Sql2 = 'Select ' + @Sql1 + ' Into RESULT From ' + ' Table_1 , Table_2 where Table_1.ID = Table_2.ID' 

-- Set @Sql2 = 'Insert into RESULT(' + @Sql1 + ')' 
-- Set @Sql2 = @Sql2 + ' Select ' + @Sql1 + ' from ETProgram , Table_2 where ETProgram.ID = Table_2.ID' 

Print @Sql2 
Смежные вопросы