从两个表中选择数据

时间:2009-09-24 13:44:16

标签: sql sqlite

我有一个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。

干杯, 汤姆

1 个答案:

答案 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 ...到NewT​​able。

编辑:将“存在”更改为“in”b / c SQL Lite更喜欢“in”。