@search74

Сортировка по множественным полям?

Всем привет. Я тут на yii начал писать простенький инет магазин, возник вопрос. Что если будет несколько прайс-листов. Как сделать сортировку по 2 полям? Приведу пример что именно нужно отсортировать.
Вот запрос:
select p.name, price1.value, price2.value
from product p
join price price1 on p.id=price1.product_id
left join price price2 on p.id=price2.product_id
order by price?.value asc

И как таблица выглядит:
p.name | price1.value | price2.value
Утюг | 5000 |
Ноут | 25000 |
Треснутый ноут | 25000 | 18000
Утюг без вилки | 5000 | 1000

И мне тут надо отсортировать по цене (от мин к мах), чтобы учитывался признак product.is_broken:
1. Утюг без вилки
2. Утюг
3. Треснутый ноут
4. Ноут

Как это лучше сделать? Может предложите верную архитектуру...

UPD добавил ссылку на sql fiddle
  • Вопрос задан
  • 142 просмотра
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347
Crazy on performance...
Я так понимаю сначала идет сортировка по price1.value потом, там где совпали значения сортируем по price2.value
в этом случае можно их просто перечислить в ORDER BY
select p.name, price1.value, price2.value
from product p
join price price1 on p.id=price1.product_id
left join price price2 on p.id=price2.product_id
order by price1.value asc, price2.value asc

Правда тут одно но, при LEFT JOIN отсутствующие записи принимают значение NULL который при сортировке будет вверху
Ответ написан
Ваш ответ на вопрос

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

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