【发布时间】:2012-05-08 11:44:54
【问题描述】:
我正在使用三类复选框来过滤来自 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 和 early-career 类别。
如果我将第 7 行更改为只有一个 IN 语句,它会很好地过滤一个类别:
wp_terms.slug IN ('academia','journalism') //More than one from same category
AND wp_term_taxonomy.taxonomy = 'jobtype'......
它会找到所有学术或新闻工作(正是我所期望的),但是当我添加另一个 IN 语句时,没有返回任何内容(即使我有符合逻辑的帖子)。
任何人都可以告诉我是否有问题(可能是IN 和值之间的空格?),因为我已经好几天没有运气了。
非常感谢任何帮助!谢谢!
P.S.如果有人想看看这个网站(看看我的意思):http://www.libertyguide.com/jobs
目前我有一个全局 OR 而不是任何 IN 直到我让它工作。
【问题讨论】: