2011-11-20 57 views
0

我想它的时间,从不同的表中的数据进行排序.. 我有表:MySQL的:通过其列从2(或多个)表行排序

书: book_id | book_name | book_time

movies: movie_id | movie_name | movie_time

我想一起选择最新的书籍和电影。我想对它排序如下:ORDER BY book_time DESC 但是对于这两个表。我尝试了加入,但它不是很好,而且速度也很慢。

+1

我不明白你怎么会加入这些表;他们没有关系。 –

+0

@ IgnacioVazquez-Abrams也许电影数据库是基于书本的电影,而movie_id是book_id的外键。虽然我怀疑事实并非如此...... –

+0

@PhpMyCoder:特别是因为这更好地表达为M2M。 –

回答

3

我平时尽量远离子查询了,但如果你把联合成一个,你可以很容易地通过时间顺序:

SELECT id, name, time 
FROM 
(
    SELECT book_id id, book_name name, book_time time FROM books 
    UNION 
    SELECT movie_id id, movie_name name, movie_time time FROM movies 
) booksandmovies 
ORDER BY time DESC; 
+1

+1:但是我会考虑使用'UNION ALL'来代替 - 它更快,因为它不会删除重复项('UNION'会)。当然,有些书和电影有相同的名字,但不可能有相同的ID和时间... –

+0

完美,谢谢! – Blaskovic