05.06.2007, 21:22
если я правильно понял, то в таблице items поле brand соответствует полю id таблицы brands, так?
тогда можно попробовать вот такую штуку:
SELECT i.id, i.brand, i.title, i.description, i.price, i.category, b.title AS brandname FROM items AS i LEFT JOIN brands AS b ON (i.category = '1' AND i.brand = b.id) ORDER BY b.title, i.title
вариант не из лучших, конечно. но это первое, что в голову пришло. кстати в полученном масииве элемент brandmane будет соответствеовать названию бренда из таблички brands, так же желательно поиндексировать поля brand и category таблички items
вроде бы запрос получается довольно быстрый - в среднем для этого запроса MySQL понадобится перебрать n*2 записей, где n - это количество товаров категории 1 (при условии индексации нужных полей - см выше), но с учетом сортировки он может стать гораздо медленнее. но это уж точно будет в разы быстрее, нежели чем сортировка в PHP...
|