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

时间:2014-02-22 17:11:35

标签: php mysql sql

我有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条记录。

1 个答案:

答案 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