0

对于可能含糊/不准确的标题,我深表歉意,但我不确定该写什么。随意编辑。

我自己有一个名为 A 的 MySQL 表。A 有三列

ID、父 ID 和姓名。

组织 ID 是自动递增的,并且永远不会为空。父 ID 可以为空。名称只是 A、B、C、D、E 等。

我的问题是。当我显示信息时,我不想显示父 ID,而是要获取父名称。

为了进一步解释我想要什么,请考虑以下信息:

ID, PID, NAME:
1,  5,   HELLO
2,  5,   POPPET
3,  5,   HI
4,  5,   BYE
5,   ,   PARENT
6,   ,   LOL
7,  8,   LUL
8,   ,   TROPICAL

应该成为

ID, PID,      NAME:
1,  PARENT  , HELLO
2,  PARENT  , POPPET
3,  PARENT  , HI
4,  PARENT  , BYE
5,          , PARENT
6,          , LOL
7,  TROPICAL, LUL
8,          , TROPICAL

类似的东西。我半信半疑地认为解决方案很简单,但我对 MySQL 还很陌生,对做很酷的事情的语法知之甚少。

这似乎过于简单,但我需要自己加入表格吗?我正在考虑在表上使用 SELECT 并在其自身上使用 LEFT JOIN。有什么方法可以引用另一行吗?也许更简单的方法?:)

非常感谢您的任何见解,在此先感谢您。

4

2 回答 2

3

将表连接到自身正是您需要做的。像这样:

SELECT t1.ID, t2.NAME, t1.NAME
FROM table t1
LEFT JOIN table t2 ON t2.ID = t1.PID
于 2012-12-11T16:08:59.497 回答
1

你已经成功了一半!

SELECT a.ID, p.Name as ParentName, a.Name as ItemName
FROM TableA a LEFT JOIN TableParent p on a.ParentID = p.ID
于 2012-12-11T16:09:49.553 回答