我想它的时间,从不同的表中的数据进行排序.. 我有表:MySQL的:通过其列从2(或多个)表行排序
书: book_id | book_name | book_time
movies: movie_id | movie_name | movie_time
我想一起选择最新的书籍和电影。我想对它排序如下:ORDER BY book_time DESC 但是对于这两个表。我尝试了加入,但它不是很好,而且速度也很慢。
我想它的时间,从不同的表中的数据进行排序.. 我有表:MySQL的:通过其列从2(或多个)表行排序
书: book_id | book_name | book_time
movies: movie_id | movie_name | movie_time
我想一起选择最新的书籍和电影。我想对它排序如下:ORDER BY book_time DESC 但是对于这两个表。我尝试了加入,但它不是很好,而且速度也很慢。
我平时尽量远离子查询了,但如果你把联合成一个,你可以很容易地通过时间顺序:
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:但是我会考虑使用'UNION ALL'来代替 - 它更快,因为它不会删除重复项('UNION'会)。当然,有些书和电影有相同的名字,但不可能有相同的ID和时间... –
完美,谢谢! – Blaskovic
我不明白你怎么会加入这些表;他们没有关系。 –
@ IgnacioVazquez-Abrams也许电影数据库是基于书本的电影,而movie_id是book_id的外键。虽然我怀疑事实并非如此...... –
@PhpMyCoder:特别是因为这更好地表达为M2M。 –