Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Sumo 05.04.2014 21:40 / 05.04.2014 21:47
@onTest1[aRequest][locals] $lFlates[^core.regions.flates.aggregate[_fields(flatID, flatID, houseID, flatNumber, address, regionID, createdAt); $.houseID[57] $.orderBy[$.flatNumber[desc]] $.asHash(true) $.limit(5) $.offset(^aRequest.offset.int(0)) ]] $lFlates[^_processFlates[$lFlates]] $result[ $.type[as-is] $.content-type[application/json] $.body[^json:string[$lFlates;$.indent(true)]] ] @_processFlates[aFlates][locals] $result[^hash::create[$aFlates]] ^result.foreach[k;v]{ $v.formatedDate[^formater.date[$v.createdAt]] $v.rnd[^math:random(25)] $v.formatedRnd[$v.rnd ^formater.numberDecline[$v.rnd;число;числа;чисел]] }SQL-запрос получился такой:
select `flt`.`flat_id` as `flatID`, `flt`.`flat_id` as `flatID`, `flt`.`house_id` as `houseID`, `flt`.`flat_number` as `flatNumber`, concat(`str`.`street_name`, ", д. ", `hs`.`house_number`, if(`hs`.`house_korp` != "", concat(", корп. ", `hs`.`house_korp`), ""), if(`hs`.`house_str` != "", concat(", стр. ", `hs`.`house_str`), ""), if(`flt`.`flat_number` != "", concat(", кв. ", `flt`.`flat_number`), "") ) as `address`, `hs`.`region_id` as `regionID`, `flt`.`created_at` as `createdAt` from `regions_flates` as `flt` join `regions_houses` as `hs` on (`flt`.`house_id` = `hs`.`house_id`) join `regions_streets` as `str` on (`hs`.`street_id` = `str`.`street_id`) left join `regions_accounts` as `acc` on (`flt`.`flat_id` = `acc`.`flat_id`) where 1=1 and (`flt`.`house_id` = 57) group by flatID order by `flt`.`flat_number` desc limit 5В браузере получил json:
{ "3891533":{ "flatID":"3891533", "houseID":"57", "flatNumber":"99", "address":"Ивана Бабушкина ул., д. 3, кв. 99", "regionID":"281", "createdAt":"2013-08-05 14:26:06", "formatedDate":"5 августа 2013 г.", "rnd":"2", "formatedRnd":"2 числа" }, "3891532":{ "flatID":"3891532", "houseID":"57", "flatNumber":"98", "address":"Ивана Бабушкина ул., д. 3, кв. 98", "regionID":"281", "createdAt":"2013-08-05 14:26:06", "formatedDate":"5 августа 2013 г.", "rnd":"7", "formatedRnd":"7 чисел" }, "3891531":{ "flatID":"3891531", "houseID":"57", "flatNumber":"97", "address":"Ивана Бабушкина ул., д. 3, кв. 97", "regionID":"281", "createdAt":"2013-08-05 14:26:06", "formatedDate":"5 августа 2013 г.", "rnd":"15", "formatedRnd":"15 чисел" }, "3891530":{ "flatID":"3891530", "houseID":"57", "flatNumber":"96", "address":"Ивана Бабушкина ул., д. 3, кв. 96", "regionID":"281", "createdAt":"2013-08-05 14:26:06", "formatedDate":"5 августа 2013 г.", "rnd":"24", "formatedRnd":"24 числа" }, "3891529":{ "flatID":"3891529", "houseID":"57", "flatNumber":"95", "address":"Ивана Бабушкина ул., д. 3, кв. 95", "regionID":"281", "createdAt":"2013-08-05 14:26:06", "formatedDate":"5 августа 2013 г.", "rnd":"7", "formatedRnd":"7 чисел" } }Мне кажется, что сортировка по flatNumber правильная, а не вразнобой.