powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка из нескольких таблиц с сортировкой
6 сообщений из 6, страница 1 из 1
Выборка из нескольких таблиц с сортировкой
    #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
Выборка из нескольких таблиц с сортировкой
    #39698893
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ball37,

думается, вам тут нужно объединение (UNION [ALL]) таблиц, а не соединение (JOIN)...
...
Рейтинг: 0 / 0
Выборка из нескольких таблиц с сортировкой
    #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
Выборка из нескольких таблиц с сортировкой
    #39698902
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LIMIT может дать "кривой результат". Если надо уменьшить число объединяемых строк, то надо использовать WHERE createTime >= @some_time во всех субзапросах, а лимитить уже во внешнем запросе.
...
Рейтинг: 0 / 0
Выборка из нескольких таблиц с сортировкой
    #39698906
ball37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Щукина Анна,

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

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


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