我正在尝试从多个表中选择最新的10条记录(ORDER BY日期)。例如,最新的8条记录可能在一个表中,2条在另一个表中(总共10行)。有没有办法选择那10条记录?
答案 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
语法可能需要稍微调整一下,但这就是它的要点。
具体来说,您需要从每个表中选择所需的数据,然后使用别名来确保它们具有相同的列名(否则它们不能在同一结果集中返回)。然后,您需要按公共日期字段排序。