【问题标题】:mysql how to sort based on relationship fieldmysql如何根据关系字段排序
【发布时间】:2018-03-11 13:18:49
【问题描述】:

我偶然发现了以下我无法解决的问题 我在数据库中有下表

CREATE TABLE `departments` (
  `Company` int(11) NOT NULL,
  `Department` varchar(32) NOT NULL,
  `DepartmentName` varchar(40) NOT NULL,
  `parentDepartment` varchar(32) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;



INSERT INTO `departments` (`Company`, `Department`, `DepartmentName`, `parentDepartment`) VALUES
(1, '1', 'Company1 Ltd', '1'),
(1, '101', 'Information Technology', '1'),
(1, '10101', 'Hardware', '101'),
(1, '10102', 'Software', '101'),
(1, '102', 'Sales Department', '1'),
(1, '10201', 'Travelling', '101');
COMMIT;

基本上它是公司部门的列表。可以使用“parentDepartment”字段将每个部门“嵌套”在另一个部门之下。

Department字段为部门代码。但是编号与“结构”无关。

我想要达到的效果可以看下图。

问题是如何整理这张表并保持关系可见?

谢谢

【问题讨论】:

  • 你的订单逻辑是什么?我能想到的只有order by rpad(Department, 5, 0)
  • 如果您可以查看图片,则排序应该按其父级和子级排序。问题是他们的部门代码与关系无关
  • 如果您认为您的问题已经表达得足够好,那么请从众多有用的答案中选择一个。

标签: mysql sorting relationships


【解决方案1】:

试试这个:

SELECT *
FROM departments
ORDER BY department;

【讨论】:

  • 不这样不行,因为部门之间的关系是父部门...
猜你喜欢
  • 2020-01-12
  • 2017-03-25
  • 2012-01-28
  • 2016-10-19
  • 1970-01-01
  • 2011-10-01
  • 1970-01-01
  • 2013-11-03
  • 1970-01-01
相关资源
最近更新 更多