【问题标题】:Selecting data from two tables从两个表中选择数据
【发布时间】:2009-09-24 13:44:15
【问题描述】:

我有一个 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 还很陌生。

我怎样才能做到这一点?我在 Python 中使用 SQLite。

干杯, 汤姆

【问题讨论】:

    标签: sql sqlite


    【解决方案1】:

    你可以从这里开始

    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。

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

    【讨论】:

    • 但是,是的,第二个表确实存在!
    猜你喜欢
    • 2012-11-18
    • 2012-12-16
    • 2012-09-13
    • 1970-01-01
    • 2013-02-13
    • 2012-12-28
    • 2017-07-04
    • 2011-09-12
    • 1970-01-01
    相关资源
    最近更新 更多