需要MySQL中查询同一表的帮助吗

需要MySQL中查询同一表的帮助吗,mysql,Mysql,我有一个包含一些数据的表,我需要使用该表进行查询 我有: +----+-----------------+--------+--------+ | Id | Name | Parent | Mark | +----+-----------------+--------+--------+ | 1 | Name 1 | 0 | 0 | | 2 | Name 2 | 1 | 20 | | 3 |

我有一个包含一些数据的表,我需要使用该表进行查询

我有:

+----+-----------------+--------+--------+
| Id | Name            | Parent |  Mark  |
+----+-----------------+--------+--------+
|  1 | Name 1          |     0  |     0  |
|  2 | Name 2          |     1  |    20  |
|  3 | Name 3          |     2  |    45  |
|  4 | Name 4          |     0  |    50  |
+----+-----------------+--------+--------+
我需要:

+----+-----------------+--------+--------+
| Id | Name            | Parent |  Mark  |
+----+-----------------+--------+--------+
|  2 | Name 2          | Name 1 |    20  |
|  3 | Name 3          | Name 2 |    45  |
+----+-----------------+--------+--------+

如何在MySQL中运行查询?

您可以使用
内部连接使用以下内容。使用此解决方案还可以排除没有匹配父级的所有行

SELECT t1.Id, t1.Name, t2.Name AS Parent, t1.Mark
FROM table_name t1 INNER JOIN table_name t2 ON t1.Parent = t2.Id
ORDER BY t1.Id ASC
如果您想查看所有行(以及没有(匹配)父行的行),您可以将以下内容与
左连接一起使用:

SELECT t1.Id, t1.Name, t2.Name AS Parent, t1.Mark
FROM table_name t1 LEFT JOIN table_name t2 ON t1.Parent = t2.Id
ORDER BY t1.Id ASC
也可以使用子选择而不是联接:

SELECT Id, Name, (SELECT Name FROM table_name t2 WHERE t2.Id = t1.Parent) AS Parent, Mark 
FROM table_name t1
WHERE t1.Parent > 0
ORDER BY t1.Id ASC

您可以通过运行此查询获得结果

Select tablename.* 
from tablename t1
inner join tablename t2 on t2.Id = t1.Parent ; 

您可以在同一个表中执行内部联接,并检查用户是否具有父级 试试像这样的东西

select * from marksTbl m inner join marksTbl p on   m.Id = p.Parent

您使用的是哪个版本的mysql?您必须用表名替换
table\u name
t1
t2
是表别名,用于连接表本身并区分列。还可以看看演示。