PHP MySql 从一个表中获取数据并左连接到同一个表

标签 php mysql database

我有这个表名 MyLevels。​​

 id  | level | ParentLevelId
 ---------------------
 1   | basic | 1
 2   | silver| 1
 3   | gold  | 2
 4   | stone | 3
 5   | wood  | 2

在这张表上,每一层都有一个父层。例如"gold"级别的parent 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');

感谢任何帮助。

谢谢

最佳答案

请试试这个。

select c.level as level, p.level as parent_level, c.id-p.id as distance_from_parent
from MyLevels AS p
JOIN MyLevels AS c on p.id = c.ParentLevelId

关于PHP MySql 从一个表中获取数据并左连接到同一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42060859/

相关文章:

php - 有条件加入 Doctrine ?

mysql - 连接两个表不确定连接使用

mysql - Rails 4 规划您的应用程序以实现高效查询

mysql - 在 CASE 的结果上使用 LIKE 搜索数据

php - 使用自定义表单 symfony 进行 Stripe 结帐

java - 如何使用 Ruby、PHP 或 Java 解析/提取/提取 ASP.net 网站内容?

php - 删除 PHP 中使用 JavaScript 添加的空间

即使已连接,PHP 也无法选择数据库

mysql - 使用 avg 函数从 sql 数据库中选择

sql - 如何通过查询找到每个客户最喜欢的类别