Как в yii1 в запросе findAll указать условие для нужной таблицы БД?
Добавлено: 2019.10.01, 08:48
Есть запрос со связями, мне нужно чтобы это условие 'client_id = :client_id', array(':client_id' => 1) Применялось только для модели Contacts и ее таблицы. В том виде что сейчас запрос, выдает ошибку CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'client_id' in where clause is ambiguous
Из за того что поле client_id существует в нескольких таблицах, и нужно указать в условии, для какой таблицы его применять. Вот запрос. Как это сделать правильно?
Вот сам запрос
ПС
Нагуглил что нужно сделать так
Сделал так
Не работает CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'contacts.client_id' in 'where clause'
Посмотре в дебагере, в этом запросе первую нужную мне таблицу он обозначает буквой t сделал вот так 't.client_id = :user_client_id', array(':user_client_id' => 1) и все заработало
Правильно ли это?
Из за того что поле client_id существует в нескольких таблицах, и нужно указать в условии, для какой таблицы его применять. Вот запрос. Как это сделать правильно?
Вот сам запрос
Код: Выделить всё
$model= Contacts::model()->with(
'staffCompanies',
'category',
'staffCompanies.contactsFavourites',
'staffCompanies.phoneStaffCompanies',
'staffCompanies.networkStaffCompanies',
'staffCompanies.emailStaffCompanies',
'staffCompanies.messengersStaffCompanies'
)->findAll('client_id = :client_id', array(':client_id' => 1));
Нагуглил что нужно сделать так
Код: Выделить всё
findall('table.client_id = :client_id', …)
Код: Выделить всё
findall('сontacts.client_id = :client_id', …)
Посмотре в дебагере, в этом запросе первую нужную мне таблицу он обозначает буквой t сделал вот так 't.client_id = :user_client_id', array(':user_client_id' => 1) и все заработало
Правильно ли это?