
我正在尝试查询我的Wordpress站点上所有包含wp_terms.slug = 'portfolio-photos‘的帖子。我已经使用wp_terms、wp_term_taxonomy、wp_term_relationships和wp_posts连接了这些表。我不确定我的SQL代码有什么问题。有人能告诉我我的代码/思路出了什么问题吗?
我收到了0行,但是,应该有12行,因为这是我在WP中有多少"portfolio-photos“插件。列标题为ID、term_id和slug。
SELECT wp_posts.ID, wp_terms.term_id, wp_terms.slug
FROM wp_posts
LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
LEFT JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id)
LEFT JOIN wp_terms ON (wp_term_taxonomy.term_taxonomy_id = wp_terms.term_id)
WHERE wp_terms.slug = 'portfolio-photos'发布于 2020-05-03 07:34:42
在仔细查看WP DB中的表是如何关联的之后,我意识到我的代码是正确的。这个article真的很有帮助。我试图使用一个与父类别相对应的插件来获取结果。
因此,我上面的原始代码只适用于子类别。下面的代码通过使用WHERE wp_term_taxonomy.parent = '11'获取正确数量的结果
SELECT wp_posts.ID, wp_terms.term_id, wp_term_taxonomy.parent, wp_terms.slug
FROM wp_posts
LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
LEFT JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id)
LEFT JOIN wp_terms ON (wp_term_taxonomy.term_taxonomy_id = wp_terms.term_id)
WHERE wp_term_taxonomy.parent = '11'发布于 2020-04-30 12:58:11
表wp_terms不在FROM子句中,您必须关联它才能在WHERE子句中使用它。
编辑:在我的原始答案之后,原始帖子被更改。
https://stackoverflow.com/questions/61516055
复制相似问题