我有 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/