CFQuery 'WHERE' из результатов другого query?

Я объясню его «реальное» применение, чтобы его было легче понять.

Я работаю над приложением электронной коммерции, которое имеет структуру категорий. Он начинается с верхнего уровня и постепенно перемещается вниз по подкатегориям. Например, Дом> Электроника> Телевизоры> Плазма

Я использую для этого одну страницу, показывая "домашнюю" страницу, если категория не определена, подкатегории, если они есть, и, наконец, продукты, если подкатегорий нет. .

Все работает нормально, однако, когда я перехожу ко второй части - отображению подкатегорий, страница становится немного пустой. Поэтому я хотел бы отобразить набор продуктов, охватывающих все применимые подкатегории.

Вот где я борюсь - в большинстве случаев будет несколько подкатегорий. Однако я не уверен, как структурировать запрос «где», используя результаты предыдущего запроса (фрагменты кода ниже для справки).

Я не думаю, что стоит изучать QofQ, и я безуспешно пытался что-то сделать с подстроками.

Приветствуются любые указатели!

<cfquery name="getcategories">
SELECT p.ID AS CategoryID, p.Cat_Name as CategoryName, p.Cat_Shortname, c.ID AS SubCategoryID, c.Cat_Name as SubCategoryName, c.Cat_Shortname AS SubCatShortname
FROM    product_categories p LEFT JOIN product_categories c ON p.ID = c.SubcategoryOf
WHERE  p.SubcategoryOf = 0
</cfquery>

<cfif IsDefined('url.cat')>
<!--- Look for additional subcategories --->
<cfquery name="getsubcategories">
SELECT *
FROM product_categories
WHERE Subcategoryof='#url.cat#'
</cfquery>
<cfquery name="getproducts">
SELECT *
FROM products
WHERE categoryid='#url.cat#'
ORDER BY RAND()
</cfquery>
</cfif>
0
задан Lee 26 October 2011 в 18:04
поделиться