我正在为WordPress编写一个SQL查询,用于搜索用户搜索之间的活动事件。我现在正在对它进行硬编码测试。SQL返回重复结果
目前,每当post_id出现在wp_postmeta表中时,都会返回两个事件,任何人都可以看到哪里可能存在这个逻辑的问题?
SELECT ID, post_title
FROM $wpdb->posts AS post
INNER JOIN $wpdb->postmeta AS meta
ON (post.ID = meta.post_id)
INNER JOIN $wpdb->postmeta AS meta2
ON (post.ID = meta2.post_id)
WHERE post.post_status = 'publish'
AND post.post_type = 'event'
AND post.post_author = '1'
AND (
((meta.meta_key = 'date_0_start-date' AND meta.meta_value < '20140620') AND (meta2.meta_key = 'date_0_end-date' AND meta2.meta_value > '20140630'))
OR ((meta.meta_key = 'date_0_start-date' AND meta.meta_value < '20140620') AND (meta2.meta_key = 'date_0_end-date' AND meta2.meta_value >= '20140620'))
OR ((meta.meta_key = 'date_0_start-date' AND meta.meta_value > '20140620') AND (meta.meta_key = 'date_0_start-date' AND meta.meta_value <= '20140630'))
OR ((meta.meta_key = 'date_0_start-date' AND meta.meta_value >= '20140620') AND (meta2.meta_key = 'date_0_end-date' AND meta2.meta_value <= '20140630'))
)
完美!谢谢! – lukeseager