我正在使用子查询从类别及其下的所有子类别中返回产品。这是它的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。