我如何从两个不同的表中选择,但随着时间的推移

时间:2014-03-25 12:56:37

标签: php html mysql sql select

我有两个不同的表,名为“groupposts”和“posts” 在这些表格中有这些专栏 我的意思是“时间”栏目的名称在两者中都不同! 我需要使用 UNION 来选择这些表

表GROUPPOSTS

    ID      Gpost      Gtime
    ________________________
    1       Test       3

表格POSTS

    ID      Ppost      Ptime
    ________________________
    1       Test       1

我想从两者中选择,但是由Gtime和PTime desc订购 告诉我如何获得它以及如何展示它们 我的意思是我怎么能显示“ppost”如果“ptime”会更快地选择或者“gpost”会是什么呢?

由于

3 个答案:

答案 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