psevdo
Дата: 21.01.2013 23:17:25
Привет всем. Передо мной стоит такая задача. Имеется портал, где регистрируются магазины. У владельцев магазина имеется возможность поднять свой магазин в топ. Услуги хранятся в таблице service_order. Вот сами таблицы:
shops
-----------------
id
name
date - дата создания (timestamp)
Таблица с заказами платных услуг
service_order
----------------
shop_id - id магазина
srv_count - на какой срок оплачивается услуга (int)
srv_period - на какой срок оплачивается услуга (enum: day, week, month)
paid - оплачена ли услуга (0 или 1)
paid_from - дата оплаты c (timestamp)
paid_to - дата оплаты по (timestamp)
Правильный вывод магазинов это сортировка по дате добавления - сначала выводятся самые новые. Тут ничего сложного. Но как мне сделать такую сортировку, что бы сначала выводились топовые магазины?
Добрый Э - Эх
Дата: 22.01.2013 05:50:47
psevdo,
из таблицы заказа услуг выбираешь последние проплаченные и действующие услуги по продвижению магазина (набор полей деривед-таблицы: shop_id, paid_to, к примеру), левым джойном цепляешь все это к списку магазинов, сортировку делаешь по coalesce(paid_to, date)