Как сделать выборку из mysql базы записей и таблицы связей с категориями? - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB88.4375
BTC/USD67751.3897
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 11.04.2017, 03:40   #1
stikname
true coder;
 
Аватар для stikname
 
Регистрация: 10.05.2013
Сообщений: 28
Бабло: $8575
Отправить сообщение для stikname с помощью ICQ
Question Как сделать выборку из mysql базы записей и таблицы связей с категориями?

День добрый господа, подскажите следующий вопрос, как реализовать выборку из БД следующего вида: http://sqlfiddle.com/#!9/aa8497/27

Что мы имеем:
1. Таблица записей
2. Таблица связи записей с категориями

Почти у всех записей по несколько категорий.

Необходимо реализовать 3 максимально быстрых MySQL запроса и проставить индексы:
1. Выборка 10 записей с определенной категорией, например 2, сортировка по полю date и условие date <= 1491502307 AND approve = 1 (Выше ссылка на мой вариант решения)

2. Выборка 10 записей в которых присутствуют одновременно три категории, например 2,4,6 (количество категорий может быть разное), с сортировкой по убыванию количества совпадений. Условие (date <= 1491502307 AND approve = 1) Мой вариант решения: http://sqlfiddle.com/#!9/aa8497/4 . В данном примере выборка производится по трем категориям (может быть и более) и записи из бд выводятся сортируясь по количеству совпадений, по убывающей. Это максимум что я смог сделать.

3. Какие индексы нужно проставить для ускорения выборки ?

Решения есть, но кажется что они далеко не идеальные.
__________________
http://stik.name - Think different
stikname вне форума