我有一个有两列的表(case和subcase)
以及以下值:
case subcase
1 0
2 1
3 1
4 0
5 0
6 4
我想要一个只有子类的案例列表
比如:
case list_of_subcase
1 2,3
4 6
5 0
案例2、3和6未列出,因为它们是子类别。
案例5没有子类,但不是子类本身。
如何写出正确的选文?有什么帮助吗?
最佳答案
我们是否有过度思考的危险。。。
DROP TABLE my_table;
CREATE TABLE my_table
(my_case INT NOT NULL
,subcase INT NULL
);
INSERT INTO my_table VALUES
(1 ,NULL),
(2 ,1),
(3 ,1),
(4 ,NULL),
(5 ,NULL),
(6 ,4);
SELECT x.my_case
, GROUP_CONCAT(y.my_case) subcases
FROM my_table x
LEFT
JOIN my_table y
ON y.subcase = x.my_case
WHERE x.subcase IS NULL
GROUP
BY x.my_case;
+---------+----------+
| my_case | subcases |
+---------+----------+
| 1 | 2,3 |
| 4 | 6 |
| 5 | NULL |
+---------+----------+