我正在使用三类复选框来过滤来自 WordPress 的帖子(这个问题是关于查询的),并且我知道事实上我应该使用以下查询返回结果(我根据过滤器中选择的内容自动生成第 7 行):
SELECT * FROM wp_posts
LEFT JOIN wp_postmeta ON(wp_posts.ID = wp_postmeta.post_id)
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_terms.term_id = wp_term_taxonomy.term_id)
WHERE
wp_terms.slug IN ('academia') AND wp_terms.slug IN ('early-career')
AND wp_term_taxonomy.taxonomy = 'jobtype'
AND wp_posts.post_status = 'publish'
AND wp_posts.post_type = 'jobs'
GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC
我至少有 5 个帖子属于academia
AND类别early-career
。
如果我将第 7 行更改为只有一个IN
语句,它会很好地过滤一个类别:
wp_terms.slug IN ('academia','journalism') //More than one from same category
AND wp_term_taxonomy.taxonomy = 'jobtype'......
它会找到所有学术或新闻工作(正是我所期望的),但是当我添加另一个IN
语句时,没有返回任何内容(即使我有符合逻辑的帖子)。
谁能告诉我是否有问题(可能是IN
值和值之间的空格?),因为我已经在这几天没有运气了。
任何帮助是极大的赞赏!谢谢!
PS如果有人想看看这个网站(看看我的意思):http ://www.libertyguide.com/jobs
目前我有一个 globalOR
而不是 any IN
,直到我让它工作。