2016-03-07 84 views
0

我有三個相同的表:查詢多個表對於特定日期範圍同時

  • gradbusdb.user
  • gradedudb.user
  • gradtheologydb.user

在各表中,我有emailsubmited_date在YYYY- MM-DD格式。我的最終目標是同時查詢所有三個表,但是當我在emailsubmited_date列的3個表之間執行UNION時,它會忽略我的WHERE條件並顯示所有結果。

我當前的查詢如下:

SELECT email, submited_date FROM gradbusdb.user 
UNION 
SELECT email, submited_date FROM gradedudb.user 
UNION 
SELECT email, submited_date FROM gradtheologydb.user 
WHERE submited_date BETWEEN '2016-02-01' AND '2016-02-29' 
ORDER BY submited_date ASC 

我不知道我做錯了這裏,但我需要我的查詢,顯示僅日期範圍內的結果。

回答

1

您應該使用WHERE對於每個查詢到工會

SELECT email, submited_date FROM gradbusdb.user 
WHERE submited_date BETWEEN '2016-02-01' AND '2016-02-29' 
UNION 
SELECT email, submited_date FROM gradedudb.user 
WHERE submited_date BETWEEN '2016-02-01' AND '2016-02-29' 
UNION 
SELECT email, submited_date FROM gradtheologydb.user 
WHERE submited_date BETWEEN '2016-02-01' AND '2016-02-29' 

ORDER BY submited_date ASC 
+0

這裏例如爲sqlfiddle:http://sqlfiddle.com/#!9/73e203/1 –

+0

謝謝!我知道這很簡單,我無法想象如何正確設置它。 –

+0

不客氣 –