同时查询特定日期范围的多个表
Query Multiple Tables For Specific Date Range Simultaneously
我有三个相同的table:
gradbusdb.user
gradedudb.user
gradtheologydb.user
在每个 table 中,我有 YYYY-MM-DD 格式的 email
和 submited_date
。我的最终目标是同时查询所有三个 table,但是当我在 email
和 submited_date
的 3 个 table 之间执行 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
我不确定我在这里做错了什么,但我需要我的查询只显示日期范围内的结果。
您应该对联合的每个查询使用 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
我有三个相同的table:
gradbusdb.user
gradedudb.user
gradtheologydb.user
在每个 table 中,我有 YYYY-MM-DD 格式的 email
和 submited_date
。我的最终目标是同时查询所有三个 table,但是当我在 email
和 submited_date
的 3 个 table 之间执行 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
我不确定我在这里做错了什么,但我需要我的查询只显示日期范围内的结果。
您应该对联合的每个查询使用 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