【问题标题】:Select from two tables, order by date in both从两个表中选择,在两个表中按日期排序
【发布时间】:2017-06-21 21:33:16
【问题描述】:

我试图在两个表中显示最新条目,但都按日期排序。 我不知道如何在此处显示表格,所以请与我合作...

我现在有

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

我也有

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

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

这是可能的还是我必须创建一个表才能得到这个结果?

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

表教义_术语

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

表学说_pubs

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

【问题讨论】:

  • 我建议您调查或阅读有关内部联接的信息
  • 编辑您的问题并提供示例数据和所需的结果。请记住:结果集具有固定的列集。您不会为每一行获得一组不同的列。
  • 粘贴表格数据,然后使用Ctl-k 将其标记为代码以保持格式不变。
  • 这是一个 PHP 问题吗?此外,如果没有数据或至少有两个表的架构,也很难提供帮助。
  • 就是这样,表格不同。相似,但不同。当我使用电脑时,我会发布表格。

标签: mysql select


【解决方案1】:

你可以使用 UNION 如果两个表具有相同的列(数字和类型),您可以使用 * 否则您必须明确选择示例中的命名列 (记住 number 和 type 必须在两者之间匹配 select 并使用 union all 如果你需要所有结果 ... union 如果你需要不同的结果)

  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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多