День добрый! Есть 3 таблицы:
1-я: a_id, a_number, game_id.
2-я: b_id, game_id, punch_id, b_cnum1, b_cnum2
3-я: c_id, c_name
1-я таблица используется в текущей модели. Нужно получить c_name из третьей таблицы, учитывая что c_id=punch_id, game_id = game_id, a_number должно попадать в диапазон от b_cnum1 до b_cnum2 и при этом проверить его на четность и проверить b_cnum1 на четность. Запрос знаю как сформировать, но связями построить что-то не выходит. Запрос вот такой:
CODE ( SQL):
скопировать код в буфер обмена
SELECT a .`game_id`,a.`number` , c.`c_name` ,b.`b_cnum1`,b .`b_cnum2` FROM a LEFT JOIN b ON ( a.game_id = b.game_id ) LEFT JOIN c ON ( b.punch_id = c.c_id ) WHERE b.b_cnum1 %2 = a.a_number %2 AND a.a_number <b_cnum2 AND a.a_number > b_cnum1
Связь пробовала сделать так, но не получается...
PHP:
скопировать код в буфер обмена
'b_tab'=>array(self::HAS_MANY,'b','game_id'), 'c_tab'=>array (self::HAS_MANY,'c',array('punch_id'=>'c_id'), 'through'=>'b_tab', 'condition'=>'b.b_cnum1 %2 = a.a_number %2 AND a.a_number <b_cnum2 AND a.a_number > b_cnum1'),
Подскажите, как надо?
|