是否可以使用临时表左外连接普通表?

soh*_*var 4 sql sql-server join

我创建了 SQL Server 查询并有带记录的普通表,另一方面有一个带记录的临时表,该表不为空,所有字段都没有任何冲突要加入

可以加入这两个不同类型的表吗?

SELECT NormalTable.Entityname  FROM NormalTable LEFT JOIN 
       #Temp tmp ON tmp.joinID = NormalTable.joinID
Run Code Online (Sandbox Code Playgroud)

him*_*056 5

可以加入这两个不同类型的表吗?(正常和临时)

是的,可以加入不同类型的表(永久表和临时表)。连接这些表没有不同的语法。

例如

永久表:

CREATE TABLE NormalTable
    ([plateno] varchar(1), [JoinID] int)
;

INSERT INTO NormalTable
    ([plateno], [JoinID])
VALUES
    ('A', 1),
    ('B', 2),
    ('C', 2),
    ('A', 3),
    ('B', 2),
    ('A', 4),
    ('A', 1)
;
Run Code Online (Sandbox Code Playgroud)

临时表:

CREATE TABLE #Temp
    ([id] int, [date] date, [score] int)
;

INSERT INTO #Temp
    ([id], [date], [score])
VALUES
    (1, '2013-04-13', 100),
    (2, '2013-04-14', 92),
    (3, '2013-04-15', 33)
;
Run Code Online (Sandbox Code Playgroud)

加入两个表:

SELECT N.* FROM NormalTable N
LEFT JOIN #Temp T ON N.JoinID = T.ID
Run Code Online (Sandbox Code Playgroud)

看看这个 SQLFiddle