对Wordpress数据库的查询返回帖子的无效类别

时间:2015-02-19 03:25:39

标签: mysql sql wordpress categories

我正在尝试通过以下查询获取分配给WordPress数据库中帖子的类别。

但是,prod_Hats肯定没有分配给帖子(通过Wordpress UI进行检查),但是,它会随此查询一起返回。 我还发现奇怪的是prod_Hats行在term_taxonomy_idterm_id的值中不匹配,因为我根据这些列值的相等性显式地加入了表。

我的查询有什么问题?

select wt.name,wt.slug,wtr.term_taxonomy_id,wtt.term_id,wtt.taxonomy from 
wp_term_relationships wtr
INNER JOIN wp_term_taxonomy wtt ON wtt.term_taxonomy_id=wtr.term_taxonomy_id AND wtt.taxonomy='category'
INNER JOIN wp_terms wt ON wt.term_id=wtt.term_taxonomy_id
where wtr.object_id=10

结果:

name        slug        term_taxonomy_id    term_id     taxonomy
Must read   must-read   4                   4           category
Tips        tips        9                   9           category
english     english     20                  20          category
prod_Hats   prod_hats   73                  72          category

此外,我添加并分配给此帖子的一些新类别根本不会通过此查询返回。

1 个答案:

答案 0 :(得分:1)

查看查询我必须做类似的事情(不在数据库附近确认),我的联接是这样的:

  FROM wp_posts p
       LEFT JOIN wp_term_relationships tr ON p.ID = tr.object_id
       LEFT JOIN wp_term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
       LEFT JOIN wp_terms t on tt.term_id = t.term_id

我看到的差异在你的行上

INNER JOIN wp_terms wt ON wt.term_id=wtt.term_taxonomy_id

我使用的是term_id,而不是term_taxonomy_id