簡體   English   中英

從兩個臨時表插入表

[英]INSERT INTO Table From Two Temporary Tables

我有兩個臨時表,如下所示:

臨時雇員

Name    | Addres   | Title

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

臨時標簽

TAG   | ValueTag | Desc

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

然后我想join兩個臨時表連接到一個表,結果如下:

TB結果

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

由於沒有公共字段可以Cross Join兩個表。.u可以使用Cross Join

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

嘗試這個:

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

注意:請謹慎嘗試使用DESC作為列名,因為它是SQL保留字。 如果您對DESC有疑問,請嘗試添加[] ,如下所示

INSERT  INTO tbResult(NAME, VALUETAG, [DESC])
SELECT E.NAME,T.VALUETAG, T.DESC
FROM #TempTag T
CROSS JOIN #TempEmploye E
INSERT  INTO tbResult
(NAME, VALUETAG, DESC)
SELECT te.NAME, tt.VALUETAG, tt.DESC
FROM #TempTag tt
Cross Join #TempEmployee te
INSERT  INTO tbResult(NAME, VALUETAG, DESC)
SELECT e.NAME, t.VALUETAG, t.DESC FROM #TempEmploye e CROSS JOIN #TempTag t

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM