Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Помогите с запросом
http://forum.kohanaframework.su/viewtopic.php?f=33&t=720
Страница 1 из 1

Автор:  rain2 [ 06 авг 2013, 22:40 ]
Заголовок сообщения:  Помогите с запросом

Помогите с запросом
Есть таблици:
availabilities
Код:
   id   
   product_id
   pharmacy_id
   supplier_id
   quantity   
   price   



suppliers
Код:
id
name


pharmacies
Код:
id
name


products
Код:
id
name
price
supplier_id


Есть контроллер в нем запрос
Код:
 $pharm = orm::factory('availability');
        $items = DB::select('availabilities.product_id', 'availabilities.pharmacy_id', 'availabilities.price', 'products.name', 'products.article')
                ->from('availabilities')
                ->join('products')->on('availabilities.product_id', '=', 'products.id')
                ->where('availabilities.pharmacy_id', '>', 0)
                ->order_by('availabilities.product_id', 'ASC')
                ->order_by('availabilities.price', 'ASC')
                ->execute()
                ->as_array('product_id');
 foreach ($items as $key => $_item) {
    $info = $pharm->get_pharm_min_price($_item['product_id']);
 }


В модели availability
метод выглядит так
Код:
public function get_pharm_min_price($product_id)
    {
        $items = DB::select('price', 'product_id', 'pharmacy_id')
                ->from('availabilities')
                ->where('pharmacy_id', '>', '0')
                ->and_where('product_id', '=', $product_id)
                ->order_by('price', 'ASC')
                ->limit(1)
                ->execute()
                ->current();

        return array('id' => $items['pharmacy_id'], 'price' => $items['price']);
    }


Нужно сделать тот же результат только все это оптимизировать , кто укажет на ошибки, буду признателен

Автор:  Sergey [ 07 авг 2013, 02:23 ]
Заголовок сообщения:  Re: Помогите с запросом

rain2 писал(а):
кто укажет на ошибки, буду признателен


Кто разберёт мою лапшу ты хотел сказать.
В запросах подобной сложности луше использовать ORM а результат выборки кешировать

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/