LIME пишет:SELECT * FROM tbl WHERE lvl=0
UNION
SELECT * FROM tbl WHERE lvl=1 GROUP BY `group` не совсем, насколько я понял будут выбраны все с нулевым уровнем, а к каждому из них будут добавлены соответствующей группы уровнем 1
НО
не факт что это будут элементы взятые с учетом сортировки по id (да добавить сортировку не проблема)
проблема в допустим в том если нужно будет не по одному элементу, а большего количества
по 2,3,... (извиняюсь надо было сразу так пример состовлять)
OrmaJever пишет:чёта я сомневаюсь в нужности поля level на размер базы эта избыточность сильно не влияет, но зато походу очень пригодится как дополнительный индекс, ну и вообще в умных книжках пишут что не желательно юзать переменные с множественным назначением (как то так)
(Добавление)
чет у меня тут мысли пришли что наверное придется перекроить немного
и сделать чтоб level (или как то ее иначе теперь обозвать) имело назначение в виде порядкового номера в группе
тоесть корневой эемент будет иметь уровень 0, все последующие в этой же группе ++
и выборка примерно будет иметь вид
хотя вот что делать если нужны не начальные элементы, а конечные
тоесть выбрать все с уровнем 0 и для каждого из них несколько последних добавленных??(Отредактировано автором: 10 Апреля, 2013 - 23:37:51)
|