如何编写SQL查询以获得以下结果?

时间:2016-12-02 17:03:22

标签: mysql

我试图从Wordpress wp_postmeta表中获取附件post id(post_id),该表未与帖子的缩略图相关联。

目前我使用以下查询

获取所有附件
select * from wp_postmeta where meta_key = '_wp_attached_file'

给出如下结果

enter image description here

然后我使用以下查询获取已经有附件的帖子

select * from wp_postmeta where meta_key = '_thumbnail_id'

给出如下结果

enter image description here

通过比较这些结果,我得到了未附加的文件

这些是突出显示的行

enter image description here

有没有办法用一个MySQL查询获得我想要的结果,而不是运行两个查询并使用PHP进行比较?如果有的话,任何帮助将不胜感激

此致

1 个答案:

答案 0 :(得分:1)

这应该有用。

select t1.* from wp_postmeta t1 where t1.meta_key = '_wp_attached_file' AND t1.post_id NOT IN (select t2.meta_value from wp_postmeta t2 where t2.meta_key = '_thumbnail_id')

请注意,由于嵌套查询,此查询存在性能问题。