MySQL选择父母和孩子

时间:2016-02-08 18:44:34

标签: mysql parent children

我遇到了这个MySQL查询的麻烦。你能帮我这么好吗?

我有这张桌子:

CREATE TABLE `time` (
  `id` int(16) NOT NULL,
  `user` int(16) NOT NULL,
  `activity` int(16) NOT NULL,
  `parent` int(16) DEFAULT NULL,
  `time` time NOT NULL,
  `decimalTime` float NOT NULL,
  `date` date NOT NULL
);

time.parenttime表中的另一个项目。我想选择所有时间项目,并且应该在列出其父项后直接列出这些项目。

例如:

ID         PARENT
1          NULL
2          NULL
3          NULL
4          2
5          1

应列出如下:

ID         PARENT
1          NULL
5          1
2          NULL
4          2
3          NULL

到目前为止,我试过这个:

SELECT a.title, parent.user, parent.activity, parent.time, parent.decimalTime, parent.date, child.parent,
CASE 
    WHEN (child.parent IS NOT NULL) THEN child.id
    ELSE parent.id
END AS id
FROM time AS parent
     LEFT JOIN time AS child 
     ON child.parent = parent.id
     LEFT JOIN activity AS a
     ON child.activity = a.id OR parent.activity = a.id
WHERE parent.parent IS NULL
ORDER BY parent.id, child.id

问题是我不能让它给出正确的ID。 This happens when I run the command.

你能指出我的错误在哪里吗?

提前致谢。

0 个答案:

没有答案