2012-11-28 36 views
3

我有一個表值wp_posts包含post_dateauthor_id檢查在MySQL查詢3米不同的日期範圍

我需要找到author_idwp_posts凡在有職位(全部)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.

任何想法?

回答

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' 
) 

這是你需要什麼?

+0

Hello @SubRed。實際上需要根據author_id分組的帖子,它們在所有3個日期範圍內匹配。如果我發現author_id的帖子在一個日期範圍內,我需要忽略他,如果適用於兩個日期範圍,則相同。 我只需要,如果author_id在所有3個日期範圍中都有帖子。 – Gude

+0

我編輯了我的答案,但尚未經過測試。 – SubRed

+0

謝謝!解決了! – Gude

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 
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')