PHP MySQL来自多个表的最新记录

时间:2014-06-06 07:39:17

标签: php mysql

我正在尝试从多个表中选择最新的10条记录(ORDER BY日期)。例如,最新的8条记录可能在一个表中,2条在另一个表中(总共10行)。有没有办法选择那10条记录?

3 个答案:

答案 0 :(得分:1)

SELECT *
  FROM
     ( SELECT * FROM x
       UNION ALL
       SELECT * FROM y
     ) n
 ORDER 
    BY date DESC 
 LIMIT 10;

答案 1 :(得分:0)

您可以使用:

SELECT column_name(s) 
FROM table1 
ORDER BY date LIMIT 0,8
UNION ALL
SELECT column_name(s) 
FROM table2 
ORDER BY date LIMIT 0,2;

答案 2 :(得分:0)

SELECT * FROM (
   SELECT some_data AS alias1, date_field AS mydate
   FROM table1
UNION ALL
    SELECT datazzz AS alias1, another_datefield AS mydate
    FROM table2
) 
ORDER BY mydate DESC LIMIT 10

语法可能需要稍微调整一下,但这就是它的要点。

具体来说,您需要从每个表中选择所需的数据,然后使用别名来确保它们具有相同的列名(否则它们不能在同一结果集中返回)。然后,您需要按公共日期字段排序。