Php 使用父类别的子类别进行搜索

Php 使用父类别的子类别进行搜索,php,mysql,sql,Php,Mysql,Sql,我有一张表: 创建表类别( id INT自动增量, 名称VARCHAR(50), parentId INT默认为空 ); 插入到tbCategories(名称、父ID)值中 (“手机和配件”,空), (“计算机和附件”,空), (“翻转案例”,1), (“基本情况”,1), (“手机”,1), (“药片”,2), (“笔记本电脑”,2), (“台式机”,2); 和tbProducts表: 创建表产品( id INT自动增量, 名称VARCHAR(100), INT类, 价格浮动 ); 在tbP

我有一张表:

创建表类别(
id INT自动增量,
名称VARCHAR(50),
parentId INT默认为空
);
插入到tbCategories(名称、父ID)值中
(“手机和配件”,空),
(“计算机和附件”,空),
(“翻转案例”,1),
(“基本情况”,1),
(“手机”,1),
(“药片”,2),
(“笔记本电脑”,2),
(“台式机”,2);
和tbProducts表:

创建表产品(
id INT自动增量,
名称VARCHAR(100),
INT类,
价格浮动
);
在tbProducts(名称、类别、价格)值中插入
('Apple iPhone 8 64GB空间灰色',5449.00),
('Samsung Galaxy S10',5464.99),
('Huawei P30 Pro',5719.99),
('Samsung Note 10+',5902.49),
('Samsung A10',5149.90),
('Lenovo Chromebook',7219.55),
('ASUS ROG',7930.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 ?
因为有多个数据来自子查询。我想我需要使用加入,但我不能。你能帮忙吗? 我期望的结果是:我将在父类别中搜索,例如,当我在“手机和配件”类别中搜索“三星”时,它将在“手机和配件”类别的所有子类别中搜索“翻盖盒、基本盒、手机”,并给我结果。
我书面解释了。我不知道还能怎么告诉你。

你需要使用
加入

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'

你能补充一下你期望的结果吗?@CarlBinalla我补充道谢谢你的回答。它只在子类别中搜索,但也有一些类别本身是父类别,没有子类别。