繁体   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