Mysql 使用两个表中的字段排序并集

Mysql 使用两个表中的字段排序并集,mysql,union,Mysql,Union,我正在尝试从表news和events以及order by news.timestamp和EVENT.datetime中选择即将到来的事件和最新的新闻 基本的非顺序查询如下所示: SELECT event_id, title FROM events UNION SELECT news_id, subject FROM news 使用相同的列名别名将每个列中的列添加到选择列表中。然后只需在底部按下单即可 SELECT event_id, title, datetime AS theda

我正在尝试从表news和events以及order by news.timestamp和EVENT.datetime中选择即将到来的事件和最新的新闻

基本的非顺序查询如下所示:

SELECT event_id, title FROM events
UNION
SELECT news_id, subject FROM news

使用相同的列名别名将每个列中的列添加到选择列表中。然后只需在底部按下单即可

SELECT
  event_id,
  title,
  datetime AS thedate
FROM events
UNION
SELECT
  news_id,
  subject,
  timestamp AS thedate
FROM news
ORDER BY thedate

Michael答案的细微变化(如果您想按时间戳和日期时间排序,但不显示):

  SELECT
    event_id,
    title
  FROM 
    ( SELECT
        event_id,
        title,
        datetime AS thedate
      FROM events
    UNION ALL
      SELECT
        news_id,
        subject,
        timestamp AS thedate
      FROM news
    ) AS tmp
  ORDER BY thedate