我有3个包含不同内容的表格,这些表格都有datetime
列。
我希望从3个表中的任何一个表中获取datetime DESC的最后10条记录。
表1中可能有5条记录,表2中有3条记录,表3中有2条记录
我怎么能在mysql中做到这一点。我应该使用Union
吗?
我尝试了这两个问题:
QUERY1:
SELECT table1.*, table2.*, table3.* FROM table1, table2, table3 LIMIT 10
QUERY2:
( SELECT * FROM table 1 LIMIT 10 )
UNION
( SELECT * FROM table 2 LIMIT 10 )
UNION
( SELECT * FROM table 3 LIMIT 10 )
但这些查询会返回30条记录。
答案 0 :(得分:2)
你必须单独写,因为你需要单独的限制
(如果列数相同)
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