我有一个SQL表,其中包含ID列和其他一些列。第二个表也有ID列。现在我想从第一个表插入第二个表行,但只插入那些没有出现在其中的表。我希望第二个表格是两者的“总和”,但没有重复。
第一个是labels
,第二个是tags
。两者都有label
列。
我想插入
labels.label, "", "", "", "N", "N/A"
在labels
表中找到但不在tags
中的所有标签的标签,因为标签中的标签已经填充了一些数据。
我试过
INSERT INTO tags SELECT labels.label, "", "", "", "N", "N/A" FROM labels, tags
WHERE labels.label != tags.label
但是我得到了很多重复。这同样适用于
INSERT INTO tags SELECT labels.label, "", "", "", "N", "N/A" FROM labels
JOIN tags ON labels.label != tags.label
也许我只是不知道,因为我对SQL很新。
我怎样才能实现这一目标?我正在使用SQLite和Python。
干杯, 汤姆
答案 0 :(得分:2)
你可以从这里开始
insert into t2 (col1, col2 ...)
select colx, coly, ... from t1
where t1.ID not in
(select ID from t2)
)
insert into语法假定第二个表(t2)已经存在。如果你想创建新表,你可以选择col1,col2 ...到NewTable。
编辑:将“存在”更改为“in”b / c SQL Lite更喜欢“in”。