php - 如何从n个表中只获取n条记录

标签 php mysql sql

我有 3 个内容不同的表格,它们都有 datetime 列。

我想从 3 个表中的任意一个中按日期时间 DESC 获取最后 10 条记录。

表 1 中可能有 5 条记录,表 2 中可能有 3 条记录,表 3 中可能有 2 条记录

如何在 mysql 中做到这一点?我应该使用 Union 吗?

我尝试了这两个查询:
查询1:

SELECT table1.*, table2.*, table3.* FROM table1, table2, table3 LIMIT 10

查询2:

( SELECT * FROM table 1 LIMIT 10 )
UNION
( SELECT * FROM table 2 LIMIT 10 )
UNION
( SELECT * FROM table 3 LIMIT 10 )

但是这些查询返回 30 条记录。

最佳答案

你必须单独写,因为你需要单独的限制

(如果有相同的列)

SELECT * FROM table1 limit 5
UNION ALL
SELECT * FROM table2 limit 3
UNION ALL
SELECT * FROM table3 limit 2

更新:

//if we need 10 rows in the result
SELECT * FROM table1,table2,table3 limit 10

关于php - 如何从n个表中只获取n条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21957524/

相关文章:

php - 从 Web 应用程序打印多个上传的文档

mysql - 将行值添加到总计 if 条件(不知道如何问这个)

sql - MySQL严格选择涉及多对多表的行

sql - CockroachDB + Ubuntu - 集群停止且没有错误消息

mysql:错误1022表中的重复键

php - Linux cron 任务 - 如何添加和运行 cron 任务?

php - mySQL 使用数据表进行搜索

php - 在 laravel-7.25 上安装望远镜失败

mysql - 按两个日期列对 View 进行排序并添加排名列

Mysql 损坏的 ibdata1 文件阻止服务启动