我使用三類複選框來過濾來自WordPress的帖子(這個問題是關於查詢的),我知道一個事實,我應該返回結果與以下查詢(我生成第7行自動依據是什麼在我的過濾器中選擇'S):SQL查詢不返回結果
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
的,直到我得到這個工作。
這是更具可擴展性,但我會指出,它只適用於值是唯一的,以便它不能有兩次相同的值 – Kevin 2012-04-27 18:06:48
我認爲這將工作,如果只有一件事在每個類別中選擇。如果我有HOWING COUNT(*)> 2但詢問「學術界」,「新聞事業」和「早期職業」,是不是可以以'學術界'和'新聞業迴歸職位,但不是'早期職業'? – 2012-04-27 18:21:58
@Kevin:是的,這是正確的,但我懷疑WordPress不允許發生這種情況。 – weenoid 2012-04-27 18:32:32