3

我有一个wp_posts包含post_dateauthor_id列的表

我需要找到(所有)3个时间范围内的author_id帖子wp_posts

wp_posts.post_date BETWEEN '2012-11-05 00:00:00' AND '2012-11-10 23:59:59'
wp_posts.post_date BETWEEN '2012-11-12 00:00:00' AND '2012-11-17 23:59:59'
wp_posts.post_date BETWEEN '2012-11-19 00:00:00' AND '2012-11-25 23:59:59'

看起来很简单,但我想不通。如果我在每个日期范围之间放置 AND,将始终返回 0。

有任何想法吗?

4

3 回答 3

1

你为什么不放 OR:

(wp_posts.post_date BETWEEN '2012-11-05 00:00:00' AND '2012-11-10 23:59:59') OR 
(wp_posts.post_date BETWEEN '2012-11-12 00:00:00' AND '2012-11-17 23:59:59') OR
(wp_posts.post_date BETWEEN '2012-11-19 00:00:00' AND '2012-11-25 23:59:59')

编辑:

SELECT author_id FROM wp_posts
WHERE author_id IN (
    SELECT author_id FROM wp_posts WHERE post_date BETWEEN '2012-11-05 00:00:00' AND '2012-11-10 23:59:59'
) AND author_id IN (
    SELECT author_id FROM wp_posts WHERE post_date BETWEEN '2012-11-12 00:00:00' AND '2012-11-17 23:59:59'
) AND author_id IN (
    SELECT author_id FROM wp_posts WHERE post_date BETWEEN '2012-11-19 00:00:00' AND '2012-11-25 23:59:59'
)

这是你需要的吗?

于 2012-11-28T14:22:35.413 回答
0
SELECT author_ID
FROM posts
WHERE   (wp_posts.post_date BETWEEN '2012-11-05 00:00:00' AND '2012-11-10 23:59:59') OR
        (wp_posts.post_date BETWEEN '2012-11-12 00:00:00' AND '2012-11-17 23:59:59') OR
        (wp_posts.post_date BETWEEN '2012-11-19 00:00:00' AND '2012-11-25 23:59:59')
GROUP BY author_ID
HAVING COUNT(*) = 3
于 2012-11-28T14:21:31.683 回答
0

尝试这个 ::

(wp_posts.post_date BETWEEN '2012-11-05 00:00:00' AND '2012-11-10 23:59:59') or
(wp_posts.post_date BETWEEN '2012-11-12 00:00:00' AND '2012-11-17 23:59:59') or
(wp_posts.post_date BETWEEN '2012-11-19 00:00:00' AND '2012-11-25 23:59:59')
于 2012-11-28T14:22:10.900 回答