我遇到了这个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.parent
是time
表中的另一个项目。我想选择所有时间项目,并且应该在列出其父项后直接列出这些项目。
例如:
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.
你能指出我的错误在哪里吗?
提前致谢。