2010-12-01 147 views
1

我有源列表:返回没有记录的列表中的所有元素。 (MYSQL)

('feed1', 'feed2', 'feed3') 

我也有一个表feeds与源列表,我需要找到我的搜索列表,其饲料不会出现在数据库中。

CREATE TABLE `feeds_filtered` (
    `id` CHAR(36) NOT NULL, 
    `url` VARCHAR(255) NOT NULL, 
    ...... 
    PRIMARY KEY (`id`) 
) ENGINE=MYISAM DEFAULT CHARSET=utf8; 

例如feed1和feed3存在于我的表中,所以我想让feed 2返回。 请注意:饲料表也有feed4,feed5等,所以我不希望他们返回。只有feed2

我可以很容易地写一个PHP脚本来做到这一点,但我想知道是否有一个简单的方法来做到这一点是MySQL?

非常感谢!

回答

2

您可以创建一个临时表,执行LEFT JOIN,然后获取加入的RHS为NULL的记录。

-1

您可以使用诸如查询:

select * from feeds_filtered 
where url is not in ('feed1', 'feed3') 
+0

除将提问者想要做它反过来。 – 2010-12-01 12:25:09

0

您可以选择从一个表不上另一个表出现的项目,即:

select * from feeds_filtered where url not in (select url from feeds) 
相关问题