2014-02-21 39 views
-1

我有3个mysql表作为这样的:MySQL的 - 获取最新内容来自3个不同的表

a) books -> id, name, price, date 

b) audio -> id, name, price, date 

c) parfume -> id, name, price, date 

注:所有日期的是phptime()格式。

now;我可以通过它们的date值来获得最新添加的10条记录吗?

例如:

1- hobbit book -> 10.10.2013 09:10 

2- metallica cd -> 10.10.2013 06:10 

3- dostoyevski book -> 10.09.2013 15:00 

4- armani parfume -> 10.09.2013 10:00 

5- madonna cd -> 10.08.2013 16:00 

6- .... 
+2

[我如何问一个好问题?](http://stackoverflow.com/help/how-to-ask)。请改善您的问题,并显示您创建的查询。 – bluemax

+0

该表包含日期字符串,而不是日期?另外,“最新添加的10条记录按其日期值进行混合”可能需要澄清,最好通过样本数据和样本期望结果进行澄清。 –

+0

“我可以通过他们的日期值获得最新添加的10条记录”你能指定你如何混合表吗? –

回答

0

试试这个

select * from (select * from books 
      union 
      select * from audio 
      union 
      select * from parfume) 
    order by date desc limit 10 
+0

thnks frnd,你也需要提高评分, – uvais

0

确保您转换日期列在MySQL使得order by条款并将结果返回到正确的顺序。

SELECT * FROM (
    SELECT id, name, price, STR_TO_DATE(date, '%c/%e/%Y %r') FROM books 
    union 
    SELECT id, name, price, STR_TO_DATE(date, '%c/%e/%Y %r') FROM audio 
    union 
    SELECT id, name, price, STR_TO_DATE(date, '%c/%e/%Y %r') FROM parfume 
) as T1 
ORDER BY T1.date desc 
LIMIT 10