【发布时间】:2011-11-25 22:02:01
【问题描述】:
我是 MySQL 新手,使用 PHP 进行查询时遇到问题。见最后三行。
$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 行)选择查询,如果: 已发布,有 a-slug 且没有 meta_key “包含”或“排除”
第 2 行)选择查询,如果: 是发布,有一个-slug,有meta_key“包含”和meta_value是'72'
第 3 行)选择查询,如果: 是发布,有一个-slug,有meta_key“排除”和meta_value不是'72'
但它给了我每次选择的两倍或三倍。 仅当它与这三个场景之一匹配时才应选择它。我做错了什么?
【问题讨论】: