Реально ли переделать сложный запрос к БД под AR или оставить как есть?

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Странник
Сообщения: 272
Зарегистрирован: 2013.04.08, 10:35
Откуда: Нижний Новгород

Реально ли переделать сложный запрос к БД под AR или оставить как есть?

Сообщение Странник » 2018.04.13, 13:46

Есть сложный запрос. Захотелось переделать его в стиле AR. Реально ли это?

Код: Выделить всё

SELECT orders.id , orders.number_id, orders.partner_id, orders.free, partners.title
FROM `partners`,`orders` WHERE `number_id`= $old_num
AND (
	free ='1' AND partner_id NOT IN (SELECT partner_id FROM orders WHERE free = '1' AND number_id = $new_num) 
	OR free !='1' AND partner_id NOT IN (SELECT partner_id FROM orders WHERE free != '1' AND number_id = $new_num)
	)	
AND partners.id=orders.partner_id AND partners.active='1' 
ORDER BY partners.title
В запрос подставляются две переменные.

andku83
Сообщения: 593
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Реально ли переделать сложный запрос к БД под AR или оставить как есть?

Сообщение andku83 » 2018.04.13, 13:52

реально и это еще не очень сложный запрос

Странник
Сообщения: 272
Зарегистрирован: 2013.04.08, 10:35
Откуда: Нижний Новгород

Re: Реально ли переделать сложный запрос к БД под AR или оставить как есть?

Сообщение Странник » 2018.04.13, 16:50

Если можно пример как это сделать?
Забыл добавить, что модели Orders и Partners связаны по relation:
Orders

Код: Выделить всё

	public function relations()
	{
		return array(
			'partner' => array(self::BELONGS_TO, 'Partners', 'partner_id'),
		);
	}
Partners

Код: Выделить всё

	public function relations()
	{
		return array(
			'orders' => array(self::HAS_MANY, 'Orders', 'partner_id'),
		);
	}

Ответить