选择超过 2 个选择查询

fip*_*123 3 select

我有两个表:
工作:

id  w_date        other stuff
1   2017-05-10
1   2017-05-08
3   2017-05-17
Run Code Online (Sandbox Code Playgroud)

家:

id  h_date       other stuff
1   2017-05-01
4   2017-05-06
1   2017-05-14
Run Code Online (Sandbox Code Playgroud)

现在我需要一个查询来获取 id 为 1 的所有日期。

就像是:

Select * 
from (
    select w_date as date 
    from work where id=1
), 
  (select h_date as date from home where id=1)
Run Code Online (Sandbox Code Playgroud)


结果应该是:

id  date
1   2017-05-01
1   2017-05-08
1   2017-05-10
1   2017-05-14
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Han*_*non 16

这是一个简单的UNION查询:

SELECT id, date
FROM work
WHERE id = 1 
UNION ALL
SELECT id, date
FROM home
WHERE id = 1
ORDER BY date;
Run Code Online (Sandbox Code Playgroud)

我用过 UNION ALL从两个源表中返回所有行语法。不使用ALL关键字可确保两个表中重复的行仅返回一次。

我添加了一个 ORDER BY在查询末尾子句以按日期升序返回列表,因为您的示例数据似乎表明了这一点。

有关更多详细信息,请参阅维基百科条目