2011-11-20 42 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