Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 14 ноя 2018, 02:10

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: SQL to ORM
СообщениеДобавлено: 30 июл 2013, 13:14 
Не в сети
Новичок

Зарегистрирован: 07 июл 2013, 19:44
Сообщения: 15
Здравствуйте, помогите преобразовать запрос из SQL в ORM.
Суть запроса: Вытащить зарегистрировавшихся пользователей за последнюю неделю, у которых не было ни одной транзакций. Т.е. у которых количество транзакций 0.
Связи в моделях настроены, Model_User has many Model_Transactions
В SQL это запрос выглядит так:
Код:
SELECT `users`.`id`, `transactions`.`id` FROM `users` 
LEFT JOIN `transactions`
ON `users`.`id` = `transactions`.`user_id`
WHERE `data_registration` > NOW() - INTERVAL 1 WEEK
AND `transactions`.`id` IS NULL

В правильности SQL запроса я тоже не уверен, но он работает :roll:
Помогите преобразовать этот запрос на ORM.

$inactive_users = ORM::factory('user')->where( *COUNT TRANSACTIONS IS 0* )->where( *REGISTRATION ONE WEEK AGO* )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SQL to ORM
СообщениеДобавлено: 30 июл 2013, 14:12 
Не в сети
Новичок

Зарегистрирован: 07 июл 2013, 19:44
Сообщения: 15
Сделал так
Код:
$users = ORM::factory('user')
         ->where('data_registration','>',DB::expr('NOW() - INTERVAL 4 WEEK'))
         ->find_all();
      
      foreach ($users as $user) {
         if($user->transactions->count_all() == 0)
            $inactive_users[] = $user->id;
      }


Вопрос, можно это сделать одним запросом?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SQL to ORM
СообщениеДобавлено: 30 июл 2013, 15:16 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
http://kohana/guide-api/ORM#join + http://kohana/guide-api/ORM#and_where

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group