假设我有这三个表:
╔═══╦════════════╦═════════════════════╗
║ ║ Name ║ Date ║
╠═══╬════════════╬═════════════════════╣
║ 1 ║ Bob ║ 2018-07-30 14:20:03 ║
║ 2 ║ Dylan ║ 2018-07-29 14:20:03 ║
║ 3 ║ Frank ║ 2018-07-17 14:20:03 ║
╚═══╩════════════╩═════════════════════╝
╔═══╦════════════╦═════════════════════╗
║ ║ Name ║ Date ║
╠═══╬════════════╬═════════════════════╣
║ 1 ║ Bernard ║ 2018-07-31 14:20:03 ║
║ 2 ║ Max ║ 2018-07-28 14:20:03 ║
║ 3 ║ Dan ║ 2018-07-16 14:20:03 ║
╚═══╩════════════╩═════════════════════╝
╔═══╦════════════╦═════════════════════╗
║ ║ Name ║ Date ║
╠═══╬════════════╬═════════════════════╣
║ 1 ║ Maria ║ 2018-07-12 14:18:03 ║
║ 2 ║ Sofia ║ 2018-07-30 14:23:03 ║
║ 3 ║ Lila ║ 2018-07-25 14:22:03 ║
╚═══╩════════════╩═════════════════════╝
我想知道如何选择前 3 个元素,按日期排序(首先是距离现在最近的日期),以便最终我的查询结果如下所示:
╔═══╦════════════╦═════════════════════╗
║ ║ Name ║ Date ║
╠═══╬════════════╬═════════════════════╣
║ 1 ║ Bernard ║ 2018-07-31 14:20:03 ║
║ 2 ║ Sofia ║ 2018-07-30 14:23:03 ║
║ 3 ║ Bob ║ 2018-07-30 14:20:03 ║
╚═══╩════════════╩═════════════════════╝
干杯!
最佳答案
SELECT *
FROM
(
SELECT * FROM Table1
UNION ALL
SELECT * FROM Table2
UNION ALL
SELECT * FROM table3
) tmp
ORDER BY DATE DESC
LIMIT 3;
关于mysql - SQL - 从 3 个表中检索结果并按日期排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51671416/