Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查Mysql查询中是否有3个不同日期范围的值_Mysql_Sql_Date_Subquery - Fatal编程技术网

检查Mysql查询中是否有3个不同日期范围的值

检查Mysql查询中是否有3个不同日期范围的值,mysql,sql,date,subquery,Mysql,Sql,Date,Subquery,我有一个表wp\u posts,其中包含post\u date和author\u id列 我需要从wp\u posts中找到author\u id,其中有(全部)3个时间范围的帖子: 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

我有一个表
wp\u posts
,其中包含
post\u date
author\u id

我需要从
wp\u posts
中找到
author\u id
,其中有(全部)3个时间范围的帖子:

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

有什么想法吗?

试试这个:

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
(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')
你为什么不放上或:

(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')
编辑:


这就是你需要的吗?

Hello@SubRed。实际上,a需要按作者id分组的帖子,这与所有3个日期范围相匹配。如果我发现一个作者id在1个日期范围内有帖子,我需要忽略他,如果在2个日期范围内也一样。我只需要当作者id在所有3个日期范围内都有帖子时才需要。
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'
)