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

时间:2010-12-01 12:03:27

标签: php mysql

我有一个Feed列表:

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

我还有一个包含Feed列表的表feeds,我需要查找搜索列表中哪些Feed没有出现在数据库中。

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。 请注意: ,Feed表还有feed4,feed5等,所以我也不希望它们返回。只有feed2

我可以轻松编写一个PHP脚本来执行此操作,但我想知道是否有一种简单的方法可以做到这一点是MySQL吗?

感谢adavnce!

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

您可以从一个表中选择未出现在另一个表中的项目,即:

select * from feeds_filtered where url not in (select url from feeds)

答案 2 :(得分:-1)

您可以使用以下查询:

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