我有这个表名MyLevels。
id | level | ParentLevelId
---------------------
1 | basic | 1
2 | silver| 1
3 | gold | 2
4 | stone | 3
5 | wood | 2
在此表上,每个级别都有父级别。例如,"gold"
级别的父ID是2.这意味着父级别为"silver"
所以我需要一个查询来获取html表中的以下内容:
父级别来自ParentLevelId
。
level | parent level | distance From Basic
-------------------------------------------
basic | basic | 0
silver | basic | 1
gold | silver | 2
从basic
引用到每个级别远离basic
级别的数字的距离
例如,wood
级别ID为5和5 - 1 = 4
。这意味着它远离basic
级别的4级
这是我唯一的代码:
$conn->prepare('SELECT id, level, ParentLevelId FROM MyLevels');
任何帮助表示感谢。
谢谢
答案 0 :(得分:1)
SELECT a.level, b.level ParentLeve , IFNULL(b.id,0) FROM
MyLevels a left join MyLevels b on a.id=b.ParentLevelId
答案 1 :(得分:1)
请试一试。
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="70"
aria-valuemin="0" aria-valuemax="100" style="width:70%">
<span class="sr-only">70% Complete</span>
</div>
</div>
答案 2 :(得分:1)
只是另一个版本添加到乐趣中。
我认为操作系统想要获得基本距离,在这种情况下是id = 1.
无论如何,写这个的另一种方式是......
SELECT
b.level AS level,
a.level AS parent_level,
b.id-1 AS distance_from_basic
FROM MyLevels a
JOIN MyLevels b ON a.id = b.ParentLevelId
ORDER BY b.id
这是根据OP提供的期望结果进行测试的。
结果:
Level Parent Level Distance From Basic
basic basic 0
silver basic 1
gold silver 2
stone gold 3
wood silver 4