【发布时间】:2014-01-13 20:56:33
【问题描述】:
我使用 MySQL,
在我的数据库中,我有这张表:
+-----------------------------+
| ID NAME ID_FATHER |
+-----------------------------+
| 1 Mylodi 0 |
| 2 Jack 0 |
| 3 Linda 1 |
| 4 Mark 2 |
| 5 Simon 4 |
| 6 Sacha 1 |
| 7 Edward 1 |
+-----------------------------+
通过这个查询,我检索了他父亲的每个名字:
select f.name as father, s.name as son from family s, family f where s.id_father = f.id
结果
+------------+---------+
| father | son |
+------------+---------+
| mylodi | linda |
| Jack | mark |
| mark | simon |
| mylodi | sacha |
| mylodi | edward |
+------------+---------+
但是,我的问题是如何得到这个结果,但是在这样的一列中:
+--------+
| colum |
+--------+
| Mylodi |
| linda |
| sacha |
| edward |
| jack |
| mark |
| simon |
+--------+
这意味着我想显示父亲的名字以及他儿子的每个父亲名字的下方。谢谢。
编辑 这是我的数据库structure
【问题讨论】:
-
你试过什么?这是在查询中使用 ORDER BY 子句的一个相当简单的例子。
-
with
Union如果你把你的数据库结构放在sqlfiddle.com 我们可以帮助你更好 -
@jcho360 :我更新了我的答案
-
这是一个难题,因为它需要遍历一个树形结构。执行此操作的确切机制取决于数据库。