如何获取mysql中每个表的前2个更新记录

时间:2014-07-05 23:43:59

标签: php mysql sql

我有3张桌子(articlestbl,businesstbl,photostbl)。现在,我想在ONLY ONE查询中为每个表获取前2个最新记录。这些表彼此无关(没有外键)。是否可以这样做?如果是的话,该怎么做。感谢。

articlestbl

 art_id  art_description   art_date
  1       article1           2014-06-02
  2       article2           2014-06-01
  3       article3           2014-06-02

businesstbl

 bus_id  bus_description      bus_date
  1       business1           2014-05-09
  2       business2           2014-06-01
  3       business3           2014-06-02

photostbl

 p_id    p_description      p_date
  1       photos1           2014-05-09
  2       photos2           2014-04-01
  3       photos3           2014-03-02

行结果应为

第一条
第三条
业务2
business3
photos1
photos2

1 个答案:

答案 0 :(得分:0)

使用UNION ALL

SELECT * FROM articlestbl ORDER BY art_date DESC LIMIT 2
UNION ALL SELECT * FROM businesstbl ORDER BY bus_date DESC LIMIT 2
UNION ALL SELECT * FROM photostbl ORDER BY p_date DESC LIMIT 2

但是你需要从三个不同的表中读取这一事实可以暗示设计问题。你在这里做的事情看起来像Class Table Inheritance,考虑调查Single Table Inheritance更有效率