如何从表中选择最近的行

时间:2016-02-25 13:40:49

标签: mysql select sql-order-by

我有table1

table1
id          int
myvalue     text
datevalue   datetime ('2016-02-23 19:25:02')

和table2

table2
id          int
myvalue     text
datevalue   datetime ('2016-02-23 19:27:58')

我想为table1和table2选择最近的5行

我猜它是一个ORDER BY日期值DESC LIMIT 5 ...

但我尝试了许多方法但没有成功!

谢谢你:)

3 个答案:

答案 0 :(得分:2)

两张桌子一起:

SELECT * FROM (
    SELECT * FROM Table1
    UNION ALL
    SELECT * FROM Table2)
ORDER BY datevalue desc LIMIT 5

和每个表分开:

  SELECT * FROM Table1
   ORDER BY datevalue desc LIMIT 5
  UNION ALL
  SELECT * FROM Table2
   ORDER BY datevalue desc LIMIT 5

答案 1 :(得分:1)

如果要从两个表中进行选择。然后,

<强>查询

select * from 
(
    select * from table1
    union all 
    select * from table2
)t
order by t.datevalue desc limit 5;

答案 2 :(得分:1)

使用union来获取整个行集(对于两个表),检查正确的语法(例如,MySQL和Oracle有不同的方式来调用东西&#39;)如果所有其他方法都未能通过to_char并在之后订购(以便您比较字符串而不再是日期,有时可能会很棘手)