我有一个产品表,其中包含一个类别的FK,Categories表以每个类别可以具有父类别的方式创建,例如:
Computers
Processors
Intel
Pentium
Core 2 Duo
AMD
Athlon
Run Code Online (Sandbox Code Playgroud)
我需要做一个选择查询,如果所选类别是处理器,它将返回Intel,Pentium,Core 2 Duo,Amd等产品......
我考虑创建某种"缓存",它将为数据库中的每个类别存储层次结构中的所有类别,并在where子句中包含"IN".这是最好的解决方案吗?
我需要在用户树所获得的每个级别上加分.级别1是用户1级以下用户的用户点数之和.2级是用户等级2级以下的1级点...
计算在非生产服务器上每月发生一次,不用担心性能问题.
SQL会是什么样子的呢?
如果你感到困惑,别担心,我也好!
用户表:
ID ParentID Points
1 0 230
2 1 150
3 0 80
4 1 110
5 4 54
6 4 342
Tree:
0
|---\
1 3
| \
2 4---
\ \
5 6
Run Code Online (Sandbox Code Playgroud)
输出应该是:
ID Points Level1 Level2
1 230 150+110 150+110+54+342
2 150
3 80
4 110 54+342
5 54
6 342
Run Code Online (Sandbox Code Playgroud)
SQL Server语法和函数最好......