- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
SELECT *
FROM (SELECT n.root, n.nodeid, n.name, UNIX_TIMESTAMP(m.createtime) AS
updatetime, (SELECT COUNT(*) FROM fs_node WHERE sid = n.sid AND root = n.root
AND cleft > n.cleft AND cright < n.cright AND clevel = n.clevel + 1 AND
nodetype = 1) AS objcount FROM fs_node AS n, fs_node AS m WHERE n.sid = $ sid
AND n.root IN (0, 1, 2, 3) AND n.nodetype = 0 AND m.nodeid =(SELECT MAX(
nodeid) FROM fs_node WHERE sid = n.sid AND root = n.root AND cleft > n.cleft
AND cright < n.cright AND clevel = n.clevel + 1 AND nodetype = 1) UNION ALL
SELECT n.root, NULL, NULL, UNIX_TIMESTAMP(m.createtime) AS updatetime, (
SELECT COUNT(*) FROM fs_node WHERE sid = $ sid AND root = n.root AND clevel
= 1 AND nodetype = 1) AS objcount FROM (SELECT 0 AS root UNIONSELECT 1
UNIONSELECT 2 UNIONSELECT 3) AS n, fs_node AS m WHERE m.nodeid =(SELECT
MAX(nodeid) FROM fs_node WHERE sid = $ sid AND root = n.root AND clevel
= 1 AND nodetype = 1)) AS tmp
ORDER BY updatetime DESC
Хренасе запросег. Celko trees? У меня как-то попроще выходило...
Думаю что если сделать нормальное форматирование, то будет вполне читабельно.
ебануться это читать
а тут судя по всему какие то обходы nested sets
Интересно как далеко может зайти это SELECT * FROM (SELECT a, b, c, SELECT(...)???
2 Max
255 вложенных запросов поддерживает ANSI SQL.
Так что этот код мог бы быть мач биггер :)
Запрос не страшный в нормальном форматировании