- 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
guest 06.12.2008 07:28 # 0
Хренасе запросег. Celko trees? У меня как-то попроще выходило...
guest 09.12.2008 14:53 # 0
Думаю что если сделать нормальное форматирование, то будет вполне читабельно.
guest 12.12.2008 20:16 # 0
ебануться это читать
guest 12.12.2008 20:17 # +1
а тут судя по всему какие то обходы nested sets
guest 12.12.2008 21:44 # 0
Интересно как далеко может зайти это SELECT * FROM (SELECT a, b, c, SELECT(...)???
guest 18.12.2008 19:45 # −1
2 Max
255 вложенных запросов поддерживает ANSI SQL.
Так что этот код мог бы быть мач биггер :)
guest 27.03.2009 21:24 # 0
Запрос не страшный в нормальном форматировании
guest 03.08.2009 23:54 # 0
guest8 21.09.2019 15:06 # −999
guest8 21.09.2019 15:10 # −999
guest8 24.09.2019 14:23 # −999
guest8 24.09.2019 23:19 # −999
guest8 25.09.2019 16:12 # −999
guest8 25.09.2019 22:40 # −999
guest8 26.09.2019 16:51 # −999
guest8 26.09.2019 20:28 # −999
guest8 11.07.2020 03:30 # −999