- Автор темы
- #1
Добрый день. Помогите, пожалуйста, в решение следующей проблемы:
1. Есть две таблицы products (товары) с полями id и name и таблица properties с полями id, product_id, kolvo
2. Понятно, что множество значений таблицы properties соответствует единственному значению в таблице products
3. Поле kolvo таблицы properties по умолчанию имеет значение NULL, также в нем хранится количество товара на складе.
4. Есть запрос:
В результате получаем товары, которые идут от меньшего к большему, но товары с количеством NULL выводятся вначале, а они должны выводиться в конце (т.е. NULL - это неограниченное количество товара). Причем, есть нюанс: если у одного и того же товара кроме NULL есть еще значения в столбце kolvo таблицы properties, то сортировка должна быть по этим значениям (берется минимальное), а не по NULL
Если группировка не нужна и выбирать только из таблицы свойств, то все просто:
А вот как добиться такого результата с группировкой не пойму. Помогите, пожалуйста.
1. Есть две таблицы products (товары) с полями id и name и таблица properties с полями id, product_id, kolvo
2. Понятно, что множество значений таблицы properties соответствует единственному значению в таблице products
3. Поле kolvo таблицы properties по умолчанию имеет значение NULL, также в нем хранится количество товара на складе.
4. Есть запрос:
Код:
SELECT * FROM products p ORDER BY(SELECT pv.kolvo FROM properties pv WHERE p.id=pv.product_id ORDER BY-pv.kolvo DESC LIMIT1)
Если группировка не нужна и выбирать только из таблицы свойств, то все просто:
Код:
SELECT * FROM properties ORDER BY -kolvo DESC