当前位置: 首页 > 知识库问答 >
问题:

mySQL从类别及其子类别中选择项目

益源
2023-03-14

我有两个表的项目和类别。类别表是自联接表。

项目表具有以下列ID、项目名称、类别ID

Categories表包含以下列CATID、category\u name、parent\u ID

我需要选择在一个类别和这个主类别的子类别下列出但不起作用的项目。这里是mysql,它只返回sub。

Select * from 
 Items A
where 
 A.CategoryID in(select CATID from categories 
    where CATID= %value% or parent_ID=%value%)    

共有2个答案

毋澄邈
2023-03-14

尝试使用tbl\u类别的自联接表,然后使用tbl\u项目的内部联接

SELECT i.ID as ItemID,
           i.item_name,
           c.catid AS categoryID,
           c.category_name AS categoryName,
           p.catid AS parentCategoryID,
           p.category_name as ParentCategoryName
 FROM tbl_item i
 INNER JOIN tbl_category p ON  p.catid = i.category_id 
 INNER JOIN tbl_category c ON  c.parent_id = p.catid 
 WHERE %value%  = p.cat_id  OR  %value%  = c.cat_id
詹甫
2023-03-14

因为字段是相关的,所以使用联接。如果类别表中存在某种一对多关系,请使用选择distinct

select distinct Items.*
from Items
join Categories as self_cat
    on (Items.CategoryID = self_cat.CATID)
left join Categories as parent_cat
    on (self_cat.parent_id = parent_cat.CATID)
where %value% in (self_cat.CATID, parent_cat.CATID)
 类似资料:
  • 我正在尝试建立自己的Webshop。 我有两个表-products和categories。结构是这样的: 当用户点击main category时,我选择要显示的产品如下所示: 问题是,我希望当用户单击主类别时,也可以选择其子类别中的所有产品。例如,类别是类别的子类别,在db中类似于 如您所见,我的当前选择将不会选择或,因为用户正在查看具有的类别...如何修改我的选择,使它将显示所有产品从主类别的子

  • 问题内容: 我想在选择 列表(下拉列表)中显示类别,子类别和子子类别,就像WordPress在其管理面板中显示的方式一样。 首先看一下我的数据库表(tb_categories)- 数据库表 我想要以下HTML格式的输出- 输出 两项“无”和“未分类”在代码中进行了硬编码。我 想知道如何 使用选择列表选项以层次结构顺序显示类别及其子类别。 我正在尝试使用自我连接的以下sql查询。这 是- And t

  • 我目前有一个代码片段,其中对于每个类别,它将找到子类别: 将递归获取一个类别的子级: 目前,使用,只检索子类别的子类别,因此如果每个子类别都有自己的子类别,则不会将其保存到子类别中。 我如何显示子子类别给我们的子类别? 我想用我的代码做的是获取一个父级,获取它的子级,然后将这些子级中的每一个视为父级,递归地获取它的子级,但是我的JSON输出并没有反映这一点。只有父对象有子对象-子对象没有子对象(尽

  • 我在从mysql数据库检索子类别时遇到一些问题。我想显示父类别的子类别。我只能得到主类别的最后一个子类别。第一个子类别不显示**。在我的表**中,我有类别\u id和类别\u父\u id。其中类别\u父\u id对于父类别将为“0”。提前谢谢 当我删除

  • 三个表保存文章信息: 类别表: lft:左值 rgt:正确的值 lft和rgt值为嵌套集,例如: 文章表: 物品类别地图表: 如何在MySQL中从一个类别和子类别中选择所有文章? 我期望: 1、 单击cat2时,显示cat2和cat5以及cat6和cat7的所有项目。 2、 单击cat5时,仅显示cat5的所有项目。 3、点击root时,显示所有类别的所有文章(包括cat1、cat2、cat3、c

  • 你好,我已经为joomla安装了jBusiness目录组件,我在tmpl/default.php文件中有一个名为mod_jbusinessdirectory的模块(这是一个商业列表搜索模块),我有选择代码:(见下文) 从这段代码中,我得到如下类别和子类别: > 主要类别1 子类别1子类别2子类别3 主要类别2 此处截图:类别和子类别截图 在助手中。php我有从数据库中获取类别和子类别的函数 最后,