サブクエリを使用して、カテゴリとその下のすべてのサブカテゴリの両方から製品を返しています。そのためのSQLクエリは次のとおりです。
SELECT
ca.categoryid, p.*, FLOOR(prodratingtotal/prodnumratings) AS prodavgrating, 0 AS prodgroupdiscount
FROM
cart_categoryassociations ca, cart_products p
WHERE
p.prodvisible=1 AND p.prodfeatured=1 AND (ca.categoryid=47 OR ca.categoryid IN (SELECT categoryid FROM cart_categories WHERE catparentid=47))
p.prodvisible=1 AND p.prodfeatured=1
実行すると、パーツを無視して、パーツのみに基づいて結果が返されます(ca.categoryid=47 OR ca.categoryid IN (SELECT categoryid FROM cart_categories WHERE catparentid=47))
。
(つまり、サブクエリで言及されたカテゴリに属していなくても、システム内のすべての注目の製品が返されます)
PS: 括弧内の部分を個別に実行してみましたが、正しいカテゴリが返されます。
MySQL バージョン 5.0.8。