我有两个不同的表,名为“groupposts”和“posts” 在这些表格中有这些专栏 我的意思是“时间”栏目的名称在两者中都不同! 我需要使用 UNION 来选择这些表
表GROUPPOSTS
ID Gpost Gtime
________________________
1 Test 3
表格POSTS
ID Ppost Ptime
________________________
1 Test 1
我想从两者中选择,但是由Gtime和PTime desc订购 告诉我如何获得它以及如何展示它们 我的意思是我怎么能显示“ppost”如果“ptime”会更快地选择或者“gpost”会是什么呢?
由于
答案 0 :(得分:4)
这样的事情应该这样做:
(SELECT Gpost AS post, Gtime AS time FROM GROUPPOSTS)
UNION
(SELECT Ppost AS post, Ptime AS time FROM POSTS)
ORDER BY time
答案 1 :(得分:1)
你在寻找这个吗?
select *
from
(
select id, gpost, gtime as xtime from GROUPPOSTS
union all
select id, ppost, ptime as xtime from POSTS
)
order by xtime;
编辑:哎呀,上面的陈述对于所要求的内容来说太复杂了。 ORDER BY子句适用于完整查询,列名取自第一个查询(在UNION ALL之前)。所以这就足够了:
select id, gpost, gtime from GROUPPOSTS
union all
select id, ppost, ptime from POSTS
order by gtime;
当然,仍然可以使用列的别名。这是个人品味的问题。
答案 2 :(得分:1)
您需要在union all子句的最后一个SQL部分中只包含order by语句。 整个组合结果集将按该列排序。
select id, gpost, gtime as xtime from GROUPPOSTS
union all
select id, ppost, ptime as xtime from POSTS
ORDER BY ptime