如何从表中选择另一个表中不存在的行?

时间:2011-04-02 04:08:22

标签: mysql sql

我有2个表 - 第一个表包含所有唯一数据(列:标题,艺术家,专辑)。第二个表格中有重复的数据或人们每天收听RSS订阅源。

我想将table2中的所有数据保存到table1,但前提是table1中不存在table2的行。我想要一个SQL查询,它将返回不在table1中的table2的所有行 - 如何?

2 个答案:

答案 0 :(得分:4)

这样的事情,可能是:

INSERT INTO Table1
(columns)
SELECT columns
FROM Table1
WHERE Table2.UniqueColumn NOT IN (SELECT UniqueColumn FROM Table1)

答案 1 :(得分:1)

假设Table2中存在列title, artist, album,并且您想要添加Table2中所有行,其中Table1中不存在这三者的给定组合,您可以执行以下操作:

Insert Table1( title, artist, album, ... )
Select title, artist, album, ...
From Table2
Where ( title, artist, album ) Not In   (
                                        Select title, artist, album
                                        From Table1
                                        )
相关问题