2015-05-22 5 views
1

У меня есть две временные таблицы, как показано ниже:INSERT INTO таблицы из двух временных таблиц

TempEmploye

Name | Addres | Title 

SMITH |CALIFORNIA| Example1 
WAYNE |BANDUNG | Example2 
ROSE |PARIS  | Example3 

TempTag

TAG | ValueTag | Desc 

AZ001 |Value1 | Desc1 
AZ002 |Value2 | Desc2 
AZ003 |Value3 | Desc3 

Тогда я хочу join как временные таблицы в одну таблицу с результатом как показано ниже:

TBResult

Name | ValueTAG| Desc 

SMITH |AZ001 | Desc1 
SMITH |AZ002 | Desc2 
SMITH |AZ003 | Desc3 
WAYNE |AZ001 | Desc1 
WAYNE |AZ002 | Desc2 
WAYNE |AZ003 | Desc3 
ROSE |AZ001 | Desc1 
ROSE |AZ002 | Desc2 
ROSE |AZ003 | Desc3 

Я пытаюсь сделать это с помощью этого кода, но он не работает:

INSERT INTO tbResult(NAME, VALUETAG, DESC) 
SELECT (select NAME from #TempEmploye) VALUETAG, DESC 
FROM #TempTag 

ответ

2

Поскольку не существует никакого общего поля для соединения двух tables..u можно использовать Cross Join

INSERT INTO tbResult 
    (NAME, 
    VALUETAG, 
    DESC) 
    SELECT 
     e.Name, 
     t.ValueTag 
     t.Desc 
    FROM TempEmployee e 
    CROSS JOIN TempTag t 
+0

Отлично, спасибо Sachu –

+0

@MuhammadIbnuSaefullah ur всегда приветствуется :) – Sachu

1

Попробуйте это:

INSERT INTO tbResult(NAME, VALUETAG, DESC) 
SELECT E.NAME,T.VALUETAG, T.DESC 
FROM #TempTag T 
CROSS JOIN #TempEmploye E 

ПРИМЕЧАНИЕ: Будьте осторожны, пытаясь использовать DESC в колонке name, потому что зарезервированное слово SQL. Если у вас есть проблемы с DESC пытаются добавить [] ниже

INSERT INTO tbResult(NAME, VALUETAG, [DESC]) 
SELECT E.NAME,T.VALUETAG, T.DESC 
FROM #TempTag T 
CROSS JOIN #TempEmploye E 
+0

да вот дела , thx –

0
INSERT INTO tbResult(NAME, VALUETAG, DESC) 
SELECT e.NAME, t.VALUETAG, t.DESC FROM #TempEmploye e CROSS JOIN #TempTag t 
1
INSERT INTO tbResult 
(NAME, VALUETAG, DESC) 
SELECT te.NAME, tt.VALUETAG, tt.DESC 
FROM #TempTag tt 
Cross Join #TempEmployee te 
+0

Хотелось бы увидеть немного больше объяснений о том, почему или как это работает или что именно оно делает. – TobiMcNamobi

+0

Крестовина производит декартовую продукцию. Каждая строка в наборе a соединяется с каждой строкой в ​​наборе b. Я редко использовал его в производстве самостоятельно, но это редкая ситуация, когда вы действительно этого хотите. Позвольте мне выкопать ссылку –

+0

http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins. Это то, что я использовал для объяснения объединений, когда моя жена начала изучать sql –

Смежные вопросы