Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка из нескольких таблиц с сортировкой / 6 сообщений из 6, страница 1 из 1
06.09.2018, 10:53
    #39698882
ball37
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц с сортировкой
Здравствуйте, люди добрые! Помогите с задачей, не могу разобраться.

Есть три таблицы News (Новости), Blogs (Блоги) и Posts (Посты). У каждой таблицы есть общее поле createTime.

А задача то простая - получать постранично смесь строк из этих таблиц, отсортированных по createTime.

Пробовал на вскидку "SELECT * FROM News JOIN Blog JOIN Post ORDER BY createTime DESC LIMIT 0, 10", но запрос ошибочен, просит указать принадлежность createTime, если написать, например, "ORDER BY News.createTime", то результат совсем не тот.
...
Рейтинг: 0 / 0
06.09.2018, 11:11
    #39698893
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц с сортировкой
ball37,

думается, вам тут нужно объединение (UNION [ALL]) таблиц, а не соединение (JOIN)...
...
Рейтинг: 0 / 0
06.09.2018, 11:13
    #39698894
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц с сортировкой
ball37,

или если и JOIN, то не самих исходных таблиц, а производных от них:

select * from
(select * FROM News ORDER BY createTime DESC LIMIT 0, 10) t1
cross join
(select * FROM Blog ORDER BY createTime DESC LIMIT 0, 10) t2
cross join
(select * FROM Post ORDER BY createTime DESC LIMIT 0, 10) t3
...
Рейтинг: 0 / 0
06.09.2018, 11:22
    #39698902
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц с сортировкой
LIMIT может дать "кривой результат". Если надо уменьшить число объединяемых строк, то надо использовать WHERE createTime >= @some_time во всех субзапросах, а лимитить уже во внешнем запросе.
...
Рейтинг: 0 / 0
06.09.2018, 11:33
    #39698906
ball37
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц с сортировкой
Щукина Анна,

К сожалению, ваш запрос даёт не совсем тот результат. Моя задача требует выдачу строк именно вперемешку, как если бы это была одна таблица. В вашем случае получается, что сперва выдаст строки из News (внутри отсортированные), только потом из Blog (также внутри себя отсортированные).
...
Рейтинг: 0 / 0
06.09.2018, 11:45
    #39698911
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из нескольких таблиц с сортировкой
ball37,

кто вам мешает добавить итоговую ОБЩУЮ сортировку в конце запроса по случайно сгенерированному значению?
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка из нескольких таблиц с сортировкой / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]