@entermix

Как выполнить подзапрос в ORM?

Есть таблицы:

orders:
id, author_id, consumer_id, supplier_id, manager_id, status_id, created

orders_archive
id, order_id, user_id, created

То есть, есть заказы, любой пользователь может отметить заказ архивным (заказчик, менеджер..)

Нужно получить все записи, которые создал текущий пользователь, и которые при этом добавлены/не добавлены в архив (этим же пользователем)

$orders = ORM::factory('Order')
->where('author_id', '=', $this->user->id)
->and_where(?)


Как вставить такой подзапрос? Я правильно понимаю, что нужно использовать DB::expr() ? Как?
  • Вопрос задан
  • 194 просмотра
Решения вопроса 1
@bkosun
->where(null, 'EXISTS', DB::expr('(SELECT * FROM `order_archive` AS `oa` WHERE `oa`.`order_id` = `order`.`id` AND ...)'))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ChernovGV
$orders = ORM::factory('Order')
->join('orders_archive', 'LEFT')->on('orders.id', '=', 'orders_archive.order_id')
->where('author_id', '=', $this->user->id)
->and_where(?)

Ну и нужно указывать о какой ORM речь!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы