sách gpt4 ai đã đi

xuống và các danh mục phụ trong bảng mysql (coldfusion, mysql)

In lại 作者:行者123 更新时间:2023-11-29 00:32:58 32 4
mua khóa gpt4 Nike

我有一个关于 ColdFusion 和 Mysql 的问题。我有两个表:PRODUCT 和 PRODUCT_CAT。我想列出包含一些标记为:IS_EXTRANET=1 的特殊产品的类别。所以我写了这个查询:


SELECT PC.PRODUCT_CAT,PC.PRODUCT_CATID,PC.HIERARCHY
FROM PRODUCT_CAT PC LEFT OUTER JOIN PRODUCT P ON P.PRODUCT_CATID=PC.PRODUCT_CATID
WHERE P.IS_EXTRANET=1
GROUP BY PC.PRODUCT_CATID,PC.PRODUCT_CAT,PC.HIERARCHY
ORDER BY PC.HIERARCHY,PC.PRODUCT_CAT

和输出:

但是有个问题。在 product_cat 表中,有两种类别:“under”和“sub”。所以在每个“下”类别中,没有产品,但有“子”类别。当我尝试列出只有具有 is_extranet=1 定义的产品的类别时,没有列出“下”类别。但我也想列出“下”类别。换句话说,如果“子”类别中有定义为 is_extranet=1 的产品,则显示“下”类别,然后是包含这些产品的子类别。我希望我说清楚了:)

此外,“under”类别的层次结构如下所示:100 和 sub:100.001

1 Câu trả lời

基于 PC.HIERARCHY 是独一无二的,这对我有用:

SELECT PC.PRODUCT_CAT,PC.PRODUCT_CATID,PC.HIERARCHY
FROM PRODUCT_CAT PC
WHERE LEFT(PC.HIERARCHY,3) IN

(SELECT DISTINCT LEFT(PC.HIERARCHY,3)
FROM PRODUCT_CAT PC
INNER JOIN PRODUCT P ON P.PRODUCT_CATID=PC.PRODUCT_CATID
WHERE P.IS_EXTRANET=1)

GROUP BY PC.PRODUCT_CATID,PC.PRODUCT_CAT,PC.HIERARCHY
ORDER BY PC.HIERARCHY,PC.PRODUCT_CAT;

hoặc:

SELECT PC.PRODUCT_CAT,PC.PRODUCT_CATID,PC.HIERARCHY
FROM PRODUCT_CAT PC
INNER JOIN
(SELECT LEFT(PC.HIERARCHY,3) AS UPPER
FROM PRODUCT_CAT PC
INNER JOIN PRODUCT P ON P.PRODUCT_CATID=PC.PRODUCT_CATID
WHERE P.IS_EXTRANET=1) AS H
ON LEFT(PC.HIERARCHY,3)=H.UPPER
GROUP BY PC.PRODUCT_CATID,PC.PRODUCT_CAT,PC.HIERARCHY
ORDER BY PC.HIERARCHY,PC.PRODUCT_CAT;

我不确定哪个会提供更好的性能。 fiddle 是 đây

关于mysql - mysql 表中的下和子类别(coldfusion,mysql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15677397/

32 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com