从两个表中选择,按日期排序

时间:2017-02-04 16:02:34

标签: mysql select

我正在尝试在两个表中显示最新条目,但按日期排序。 我不知道如何在这里展示表格,所以请与我合作......

现在我有

SELECT * FROM `doctrine_pubs` WHERE `status` = 'ACTIVE' ORDER BY `date` DESC

我也有

SELECT * FROM `doctrine_terms` ORDER BY `date` DESC

我想将这两者结合起来,但我不希望从一个表中显示结果,然后从另一个表中显示结果,而是希望它们组合在一起并按日期排序。

这是可能的,还是我必须创建一个表来获得这个结果?

编辑,这是表......我真的不知道如何格式化这些。

表doctrine_terms

term_id | display   | acronym| definition      | reference | symbol | date       | changeType
---------------------------------------------------------------------------------------------    
698     | some term | ABC    | a bunch of text | Book6     | NA     | 1484136000 | NEW

表doctrine_pubs

pub_id | number   | title           | date       | status | link
----------------------------------------------------------------------------    
123    | Book6    | some string here| 1484168496 | ACTIVE | www.example.com

1 个答案:

答案 0 :(得分:1)

你使用UNION 如果两个表具有相同的列(数字和类型),您可以使用*否则您必须明确选择样本中的命名列   (记住数字和类型必须匹配两个选择并使用union all如果你需要所有结果...如果你需要不同的结果联合)

  select t1.date, t1.col1, t1.col2, t1.col3 
  FROM `doctrine_pubs` as t1
  WHERE `status` = 'ACTIVE' 

  UNION ALL 
  select t2.date, t2.col1, t2.col2, t2.col3 
  FROM `doctrine_terms`  as t2
  ORDER BY `date` DESC