我正在尝试将数据插入到另一个数据尚不存在的表中
我将数据插入
的表格CREATE TABLE #T(Name VARCHAR(10),Unit INT, Id INT)
INSERT INTO #T
VALUES('AAA',10,100),('AAB',11,102),('AAC',12,130)
我从
中选择数据的表格CREATE TABLE #T1(Name VARCHAR(10),TypeId INT,Unit INT, Id INT)
INSERT INTO #T1
VALUES('AAA',3,10,100),('AAA',3,10,106)
在这种情况下,我想从#T1中选择('AAA',3,10,106)
,因为#T
基本上我想要的是填充唯一的名称和ID组合
我在下面尝试了似乎无法正常工作
SELECT *
FROM #T1
WHERE NOT EXISTS(SELECT * FROM #T)
答案 0 :(得分:3)
你必须以某种方式关联这两个表:
SELECT *
FROM #T1
WHERE NOT EXISTS(SELECT *
FROM #T
WHERE #T1.Name = #T.Name AND #T1.ID = #T.ID)
上述查询基本上是这样说的:给我一些表#T1
的记录,这些记录在#T
中没有相关记录相同 Name
和 ID
值。
答案 1 :(得分:0)
您最好的选择可能是使用带有子查询的insert语句。像这样:
SQL Insert Into w/Subquery - Checking If Not Exists
编辑:如果您仍然卡住,请尝试此操作 -
INSERT INTO #T (Name, Unit, Id)
SELECT Name, Unit, Id
FROM #T1
WHERE
NOT EXISTS (SELECT Name, Unit, Id FROM #T
WHERE #T.Name = #T1.Name AND #T.Unit = #T1.Unit AND #T.Id = #T1.Id)