dzheka3d
@dzheka3d

Как вывести в сумме N записей из двух таблиц с постраничной навигацией?

Всем привет! Есть две таблицы (абсолютно разные), но мне нужно вывести их в одну ленту.
Я делаю один запрос к одной таблице и получаю записи, потом ко второй и на стороне php сортирую их по дате.
Как сделать так, чтобы получилось скажем 20 записей в сумме? Ведь может получится так, что с одной таблицы сегодня есть 20 записей, а с другой нету вообще.
В голову пока пришло только такое решение: выбирать из каждой таблицы столько записей, сколько нужно получить в результате, потом отсортировать по дате и с обрезать массив с помощью array_slice() до этого количества.

Может есть еще какие-то решения? Ведь если мне нужно будет вывести записи на второй странице - уже что-то таким способом не получается совсем
  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
InstantMedia
@InstantMedia
Нужна третья, агрегирующая таблица, в которую писать связи с вашими двумя таблицами при их заполнении. Таблица, например, с полями "target" (писать идентификатор связи, например table1), "target_id" - id записи (в ваших таблицах) и полем "date_pub", в которое писать дату. При получении данных делать выборку из этой таблицы и присоединять ваши две таблицы по связям. Соответственно на связующих ячейках должен быть индекс (составной на два поля target_id и target) и индекс на поле date_pub для сортировки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы