2014-02-22 73 views
0

我有3个不同内容的表,它们都有datetime列。如何从n个表中只获得n条记录

我想从3个表中的任何一个获得datetime DESC的最后10条记录。

也许5条从表1,表2,从3条记录,并从表3

2个记录我如何能做到这一点在MySQL。我应该使用Union吗?

我想这两个查询:
查询1:

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

你尝试什么吗? – Fabio

+0

我尝试过union,但它会分别返回每个表的最后10条记录。 30条记录返回。 – Pars

+0

试着限制每个查询的结果数 – Fabio

回答

0

你必须分开来写,因为你需要单独限制

(IF具有相同列)

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

UPDATE:

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

你是天才...... – Pars

+1

他说表格有“不同的内容”,工会要求每个连接的查询返回相同数量的列,并且每个列都是相同类型的。如果3个表的内容不同,并且您选择了3个连接查询的每个列中的所有列,那么为什么您认为它会起作用? –

+0

他说内容不是专栏,他还说他在他的问题中尝试过联盟 –

相关问题