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

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

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

Сообщение Странник »

Есть сложный запрос. Захотелось переделать его в стиле 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
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

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

Сообщение andku83 »

реально и это еще не очень сложный запрос
Странник
Сообщения: 289
Зарегистрирован: 2013.04.08, 10:35
Откуда: Нижний Новгород

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

Сообщение Странник »

Если можно пример как это сделать?
Забыл добавить, что модели 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'),
		);
	}
Ответить