【发布时间】:2015-09-10 06:33:15
【问题描述】:
我正在尝试进行查询以解决此问题:
如果主类别包含产品或子类别包含产品,请选择主类别
问题在于它没有选择包含产品的子类别
SELECT Category.id, Category.name, Category.description, Category.image
FROM categories_table as Category
JOIN products_table as Product
WHERE Category.subcategory = 0 AND Product.category = Category.id
OR Category.id IN
(
SELECT SubProduct.categorie
FROM kosBonusShop_regels AS SubProduct
WHERE SubProduct.category = Category.subcategory
AND Product.category = Category.id
GROUP BY Product.category
)
GROUP BY Product.category
Product #1 Category #1
id | 1 id | 1
category | 2 (Pencils) subcategory | 0 (none)
description | Pencil title | office supplies
Category #2
id | 2
subcategory | 1 (office supplies)
title | Pencils
产品铅笔应属于铅笔类别,铅笔类别应属于办公用品类别的子类别
办公用品类别也可以包含产品
【问题讨论】:
-
子类别的可能深度是多少?
-
您应该尽量避免在
FROM子句中使用逗号。 -
可能是您的条件没有正确布置。 AND 总是具有更高的优先级。
-
@M0rii 只是一个级别。类别 -> 子类别
-
product怎么可能与category有直接关系(正如Product.category所暗示的那样)?
标签: mysql