gpt4 book ai didi

php - 使用父类别搜索子类别

转载 作者:行者123 更新时间:2023-11-29 15:27:48 25 4
gpt4 key购买 nike

我有一个 tbCategories 表:

CREATE TABLE tbCategories(
id INT AUTO_INCREMENT,
name VARCHAR(50),
parentId INT DEFAULT NULL
);

INSERT INTO tbCategories(NAME, parentId) VALUES
('Cell Phones & Accessories', NULL),
('Computers & Accessories', NULL),
('Flip Cases', 1),
('Basic Cases', 1),
('Cell Phones', 1),
('Tablets', 2),
('Laptops', 2),
('Desktops', 2);

和一个 tbProducts 表:

CREATE TABLE tbProducts(
id INT AUTO_INCREMENT,
name VARCHAR(100),
category INT,
price FLOAT
);

INSERT INTO tbProducts(NAME, category, price) VALUES
('Apple iPhone 8 64GB Space Gray', 5, 449.00),
('Samsung Galaxy S10', 5, 464.99),
('Huawei P30 Pro', 5, 719.99),
('Samsung Note 10+', 5, 902.49),
('Samsung A10', 5, 149.90),
('Lenovo Chromebook', 7, 219.55),
('ASUS ROG', 7, 930.00);

我想通过搜索查询中的父类别访问子类别中的产品。我尝试了这个,但我注意到这是错误的查询。

SELECT id, name, price FROM tbProducts WHERE (category=? OR category = (SELECT id FROM tbCategories WHERE tbCategories.parentId=?)) AND name LIKE ? OR productCode LIKE ? OR productionCode LIKE ?

因为不止一个数据来自子查询。我想我需要使用JOIN,但我不能。你能帮忙吗?我期望的结果:我会在父类别中搜索,例如,当我在“手机及配件”类别中搜索“三星”时,它将在所有子类别中搜索“翻盖保护壳、基本保护壳、手机” “手机及配件”类别并给我结果。我以书面形式解释了这一点。我不知道还能怎样告诉你。

最佳答案

您需要使用JOIN

SELECT PRO.id 
, PRO.name
, PRO.price
FROM tbProducts PRO
JOIN tbCategories CAT
ON PRO.category = CAT.id
JOIN tbCategories CAT2
ON CAT2.id = CAT.parentId
where PRO.name = 'Samsung Galaxy S10'

关于php - 使用父类别搜索子类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58951211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com