【问题标题】:Sorting data by parent in MySQL在 MySQL 中按父级对数据进行排序
【发布时间】:2017-08-19 08:45:36
【问题描述】:

我有这样的桌子

+-------------+-------------+-----------+
| id_struc    | id_emply    | id_boss   |
+-------------+-------------+-----------+
|           1 |       1     |     0     | 
|           3 |       2     |     3     |
|           6 |       4     |     1     |
|           7 |       5     |     1     |
|           9 |       6     |     3     |
|          10 |       3     |     4     |
+-------------+-------------+-----------+

我想对它进行排序,这样我就可以得到这样的东西。

+-------------+-------------+-----------+
| id_struc    | id_emply    | id_boss   |
+-------------+-------------+-----------+
|           1 |       1     |     0     |
|           6 |       4     |     1     |
|           7 |       5     |     1     |
|          10 |       3     |     4     |
|           3 |       2     |     3     |
|           9 |       6     |     3     |
+-------------+-------------+-----------+

id_boss 排序。所以每个id_emply 都不能成为他们的老板。我可以这样做吗?

【问题讨论】:

  • 对不起,您的结果不是按 id_boss 排序,id_boss:3 在 id_boss:4 之后
  • 对我来说好像是 id_emply、id_boss 的订单?
  • 我的意思是我想对其进行排序,但该员工可能是他们老板的最高层
  • 在 mysql 中,您不会直接在数据表中对数据进行排序,而是对查询的结果集进行排序。您可能正在寻找能够产生这种有序结果集的查询。
  • 一个好问题有一些代码。

标签: mysql sql sql-order-by


【解决方案1】:

我认为您需要这样的查询:

select t.*
from t
left join t b on t.id_boss = b.id_emply
order by b.id_boss, t.id_emply;

[SQL Fiddle Demo]

【讨论】:

    猜你喜欢
    • 2012-07-12
    • 2018-01-25
    • 1970-01-01
    • 2013-07-23
    • 2018-07-31
    • 1970-01-01
    • 2010-11-19
    • 2014-03-12
    • 1970-01-01
    相关资源
    最近更新 更多