2016-07-26 4 views
1

Перед тем, как разметить как повторяющийся вопрос, прочти его прочитать. У меня здесь другая проблема. Я хочу сгенерировать этот запрос с помощью модели поиска yii2.Как использовать вложенные условия в AndWhere in yii2

select * from t1 innerjoin t2 on (t1.id = t2.id) where ((t1.price >= '1000' and t1.price <= '5000') OR 
        (t2.price >= '1000' and t2.price <= '5000')) 

Взаимодействие здесь не является проблемой. Основная проблема - предложение where. Я пробовал это, но не работал.

$query->andFilterWhere([ 
        'and', 
        ['>=', 't1.price', $this>start_price], 
        ['<=', 't1.price', $this->end_price] 
       ]) 
     ->orFilterWhere([ 
         'and', 
         ['>=', 't2.price', $this->start_price], 
         ['<=', 't2.price', $this->end_price] 
       ]); 

ответ

2

Попробуйте

$query->andFilterWhere([ 
    'or', 
    [ 
     'and', 
     ['>=', 't1.price', $this>start_price], 
     ['<=', 't1.price', $this->end_price] 
    ], 
    [ 
     'and', 
     ['>=', 't2.price', $this->start_price], 
     ['<=', 't2.price', $this->end_price] 
    ] 
]); 
+0

Спасибо дружище .. :-) –

 Смежные вопросы

  • Нет связанных вопросов^_^