我有一个包含一个类别的FK的产品表,创建类别表的方式是每个类别都可以有一个父类别,例如:
Computers
Processors
Intel
Pentium
Core 2 Duo
AMD
Athlon
我需要进行选择查询,如果选择的类别是“处理器”,它将返回英特尔,奔腾,Core 2 Duo,AMD等产品。
我考虑过要创建某种“缓存”,该缓存将为数据库中的每个类别存储层次结构中的所有类别,并在where子句中包含“ IN”。这是最好的解决方案吗?
最好的解决方案是在数据库设计阶段。您的类别表必须是一个 嵌套集
。文章“在MySQL中管理层次结构数据”不是特定于MySQL的(尽管有标题),并且全面概述了在数据库表中存储层次结构的不同方法。
因此,根据您的示例,如果层次结构表是嵌套集,则查询将如下所示:
SELECT * FROM products
INNER JOIN categories ON categories.id = products.category_id
WHERE categories.lft > 2 and categories.rgt < 11
2和11分别是Processors
记录的左侧和右侧。
问题内容: 我试图从我的MySQL数据库中按层次结构获取所有类别和子类别: 我的结果应该是这样(只是示例): 猫A 子猫1 Sub_Sub_Cat 1 Sub_Sub_Cat 2 子猫2 猫B C猫 … MySQL代码: 简而言之,如何在使用 PHP代码 的层次结构中获得它? 问题答案: 使用邻接表模型时,您可以一次性生成结构。 取自一遍父子数组结构(2007年9月; Nate Weiner撰写)
我的数据库中有两个表: 我怎么能这样回报: 我在类别表中使用“WITH RECURSIVE”,但找不到将产品表与1次查询相结合的方法。我使用这里的例子 最好的方法是什么?
这是一个产品的表格结构 这是类别的表结构 我在为包括嵌套类别在内的每个类别选择产品计数时遇到困难。例如,类别有1个产品,类别有1个产品,类别有1个产品,并且由于类别和是类别的各自直接/间接祖先,类别有3个产品。所以我需要一个查询或只是一种方法来获得这样的东西: 是否可以只使用SQL,或者我需要添加一些PHP?
问题内容: 我在这方面遇到了困难。我已经看到了一些示例,这些示例说明了如何从给定父级的自引用表中获取所有子级记录,甚至如何获取子级记录的父级。 我想做的是返回一条记录,并给所有子记录指定ID。 为了说明这一点-我有一个公司层次结构。在哪里: 我需要的是一个过程(1)弄清记录的级别,以及(2)检索该记录和所有子记录。 作为区域的想法可以看到一个区域中的所有地区和代表,而地区可以看到他们的代表。代表只
问题内容: 我有一个表,它表示类别层次结构,层次结构顶部的元素的父ID为0。在CatID列中有超过54K个唯一ID。每个ID可以是另一个ID的父对象。类别深入8个级别。该表如下所示: 这就是我想要实现的结果: 我怎样才能做到这一点?我是否需要某种循环才能遍历所有ID? 有人可以帮忙吗? 问题答案: 这里是:
我有2张桌子 类别 产品 如何选择所有产品并通过子类别加入主类别?产品类别只能有1或2或3或4个级别(未知级别)。 我在类别表中使用“with RECURSIVE”,但找不到将产品表与1次查询相结合的方法 最好的方法是什么? 预期结果 或