我是MySQL的新手,我遇到了使用PHP查詢的問題。看最後三行。與多個AND的MySQL查詢
$query = "
SELECT post_content, slug, ID
FROM wp_posts
INNER JOIN wp_term_relationships
ON wp_posts.ID = wp_term_relationships.object_id
INNER JOIN wp_terms
ON wp_term_relationships.term_taxonomy_id = wp_terms.term_id
INNER JOIN wp_postmeta
ON wp_posts.ID = wp_postmeta.post_id
WHERE post_status = 'publish' AND slug = 'a-slug' AND meta_key <> 'include' AND meta_key <> 'exkludera'
OR post_status = 'publish' AND slug = 'a-slug' AND meta_key = 'include' AND meta_value = '72'
OR post_status = 'publish' AND slug = 'a-slug' AND meta_key = 'exclude' AND meta_value <> '72'
";
隨着最後三個行我想說:
行1)選擇查詢,如果它: 是發佈,擁有-蛞蝓和犯規都meta_key「包含」或「排除」
行2)選擇查詢,如果它: 是發佈,有着段塞,有meta_key「包括」 meta_value是「72」
行3)選擇查詢,如果它: 是發佈,擁有-蛞蝓,有meta_key「排除」和meta_val ue不是'72'
但它讓我回到每個選擇的雙倍或tripple。 只有當它匹配這三個senarios中的一個時才應該被選中。我究竟做錯了什麼?
我已經試過了,但是沒有什麼區別。是的,「行1行2和行3」我的意思是我的例子中的最後三行。請再看一遍。 – Hakan
也許你的'join'有一個額外的問題;你有重複的行嗎? – jeroen
是的,我有兩到三個重複的行。將嘗試沒有連接。 – Hakan