linky
05.06.2007, 17:04
Здравствуйте. Передо мной встала задача сделать модуль с товарами, этакий каталог. В базе имеется несколько таблиц, в частности:
brands [ id | title ] - торговые марки
items [id | brand | title | description | price | category ] - сами товары
в поле brand, таблицы items, находится id бренда из таблицы brands
В самом же каталоге, мне нужно упорядочить товары сначала по названию бренда, а потом уж по наименованию товара. Вот как примерно это выглядит сейчас:
SELECT * FROM items WHERE category = '1' ORDER BY title
в данном случае, мой список товаров выглядит вот так:
3Brand - Арбуз
4Brand - Бутылка
1Brand - Венигрет
8Brand - Вертолет
5Brand - Корова
4Brand - Сумка
а вот что мне нужно:
1Brand - Венигрет
3Brand - Арбуз
4Brand - Бутылка
4Brand - Сумка
5Brand - Корова
8Brand - Вертолет
Но как упорядочить по имени бренда, если в таблице товаров есть только его id? Я в sql новичек, но уверен что это реально.
Я пробовал с помощью двух while {} где сначала перебираются все бренды, а из них выбираются только товары которые подходят к этой категории, но проблема в быстродействии - она упала очень сильно, страница грузилась очень долго, ибо брендов действительно много, около 300 штук, и сервер перебирает все товары, смотря на их категорию... вобщем это не выход, и я уверен что можно все просто одним хитрым sql-запросом все это дело упорядочить. Спасибо!
brands [ id | title ] - торговые марки
items [id | brand | title | description | price | category ] - сами товары
в поле brand, таблицы items, находится id бренда из таблицы brands
В самом же каталоге, мне нужно упорядочить товары сначала по названию бренда, а потом уж по наименованию товара. Вот как примерно это выглядит сейчас:
SELECT * FROM items WHERE category = '1' ORDER BY title
в данном случае, мой список товаров выглядит вот так:
3Brand - Арбуз
4Brand - Бутылка
1Brand - Венигрет
8Brand - Вертолет
5Brand - Корова
4Brand - Сумка
а вот что мне нужно:
1Brand - Венигрет
3Brand - Арбуз
4Brand - Бутылка
4Brand - Сумка
5Brand - Корова
8Brand - Вертолет
Но как упорядочить по имени бренда, если в таблице товаров есть только его id? Я в sql новичек, но уверен что это реально.
Я пробовал с помощью двух while {} где сначала перебираются все бренды, а из них выбираются только товары которые подходят к этой категории, но проблема в быстродействии - она упала очень сильно, страница грузилась очень долго, ибо брендов действительно много, около 300 штук, и сервер перебирает все товары, смотря на их категорию... вобщем это не выход, и я уверен что можно все просто одним хитрым sql-запросом все это дело упорядочить. Спасибо!