我正在尝试将数据从另一个尚不存在数据的表中插入数据
我正在将数据插入的表
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)
,因为 AAA,106 组合不存在 #T
基本上我想要的是填充唯一的名称和 Id 组合
我在下面尝试过,似乎不起作用
SELECT *
FROM #T1
WHERE NOT EXISTS(SELECT * FROM #T)
您必须以某种方式关联两个表:
SELECT *
FROM #T1
WHERE NOT EXISTS(SELECT *
FROM #T
WHERE #T1.Name = #T.Name AND #T1.ID = #T.ID)
上面的查询本质上是说:给我那些在具有相同Name
和ID
值#T
没有相关记录的表 #T1
记录。
最好的办法可能是使用带有子查询的插入语句。 像这样:
SQL 插入到带子查询中 - 检查是否存在
编辑:如果你仍然卡住,试试这个 -
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)