我想做这样的事情:
SELECT a.date AS EnrollDate, a.id, a.name, b.address FROM student a JOIN Location b ON a.id=b.id
UNION
SELECT a.date AS EnrollDate, a.id, a.name, b.address FROM teacher a JOIN Location b ON a.id=b.id
WHERE a.date>'2010-01-01'
ORDER BY EnrollDate
Run Code Online (Sandbox Code Playgroud)
但WHERE条件仅适用于第二个SELECT语句.我需要以某种方式应用于SELECT.我现在唯一的选择是单独应用WHERE条件.但我正在与几个UNION合作,在所有地方都包含WHERE是很乏味的.我想知道是否有一个简单的方法.
顺便说一句,我正在使用MySQL.
Jan*_*net 13
SELECT * FROM (
SELECT a.date AS EnrollDate, a.id, a.name, b.address FROM student a JOIN Location b ON a.id=b.id
UNION
SELECT a.date AS EnrollDate, a.id, a.name, b.address FROM teacher a JOIN Location b ON a.id=b.id
) A
WHERE EnrollDate > '2010-01-01'
ORDER BY EnrollDate
Run Code Online (Sandbox Code Playgroud)
与个人相比,这也具有优势,ORDER BY即整个结果正确排序.
您是否尝试过类似的事情:
SELECT * FROM
(
SELECT a.date AS EnrollDate, a.id, a.name, b.address FROM student a JOIN Location b ON a.id=b.id
UNION
SELECT a.date AS EnrollDate, a.id, a.name, b.address FROM teacher a JOIN Location b ON a.id=b.id
) A
WHERE a.date>'2010-01-01'
ORDER BY EnrollDate
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14047 次 |
| 最近记录: |