| Как одним запросом к базе, у которой поле ID может иметь одинаковые значения, но записи у этих ID разные, получить все доступные (enabled=1) записи без повтора ID в выходном массиве, например, база sourse:
ID descript enabled
----------------------------------
12 string1 1
12 string2 1
12 string3 1
24 string1 0
11 string1 1
11 string2 1
Из базы catalog, для этих ID надо получить имя и ID каталога этой ID, и если этот каталог не пренадлежит корневому каталогу (parent=0), то имя родителя, если родитель всвою очередь не пренадлежит корневому каталогу, то имя его родителя - пока не достигнем parent=0. Все это по LIMIT $offset, $max.
база catalog, например:
parent name ID
---------------------------
0 name1 11
32 name2 12
42 name3 32
0 name4 42
и чтобы получить массив типа
ID=>12,descript=>array(string1,string2,string3),parent=>array(0=>42,1=>name4,2=>32,3=>name3,4=>12,name2),
ID=>11,descript=>array(string1,string2),parent=>array(11=>name1)
или это лучше и эффективней будет на раздельных запросах? | |