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


how to get the top 2 updated records of each table in mysql

我有3个表(articlestbl, businesstbl, photostbl)。现在,我想在一个查询中获取每个表的前2个最更新的记录。这些表彼此不相关(没有外键)。这可能吗?如果有,该怎么做呢?谢谢。

articlestbl

<>之前Art_id art_description art_date2014-06-022014-06-012014-06-02之前

businesstbl

<>之前Bus_id bus_description bus_date2014-05-092014-06-012014-06-02之前

photostbl

<>之前P_id p_description p_date1图1 2014-05-092图2 2014-04-012014-03-02之前

行结果应为


第三条
business2
business3
photos1
photos2

使用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

但是需要从三个不同的表中读取这一事实可能暗示存在设计问题。这里的操作类似于类表继承,考虑一下单表继承,它更有效

相关文章: