Помогите составить СЛОЖНЫЙ ЗАПРОС

hammet

Есть таблица товаров items с полями:id, name, desc, art, color, image, assign, contentsПоле assign содержит id другого товара из той же самой таблицы.Мне нужно одним запросом извлечь id, name, desc, art, color, image, contents + id,art ТОГО ТОВАРА, id которого записан в поле assign.Другими словами я связываю товары в каталоге между собой, для каждого товара в поле assign я записываю значение id товара с которым он связан.Вопрос - как извлечь это одним запросом?....спасибо.....
6 ответов

hammet

select 
a2.* 
from 
table1 as a1 
left join
table1 as a2 on (a2.id=a1.assign)
where a1.name='имя первого товара'
Я бы на вашем месте иерархию вынес в отдельную таблицу, но это на любителя.


hammet

Дело в том что у меня в запросе присутствует WHERE и GROUP BY...Как с ними быть?Изначально было так:SELECT * FROM `kc_items` WHERE category=$id GROUP BY `name`,`desc`,`art`


hammet

Так и быть: поправить поля для выборки и прилепить группировку. Это был схематический пример.


hammet

SELECT m.*, a.id AS aid, a.art AS aart FROM `kc_items` AS m WHERE m.cat_by_items=$id GROUP BY m.name,m.desc,m.art LEFT JOIN `kc_items` AS a ON m.assign = a.idВот попытался....естесственно ошибка


hammet

Виноват...синтаксис SELECT прочитал :)Большое спасибо за помощь!У меня все получилось


hammet

hammet пишет:> Виноват...синтаксис SELECT прочитал :)> Большое спасибо за помощь!> У меня все получилосьУ тебя еще и не такое получится, главное документацию читай побольше !!