Не можете получать информацию о новостной ленте подписчика в Yii? - PullRequest
0 голосов
/ 03 июня 2018

У меня есть две таблицы

Activity  

   ID | user_type    | user_id | status  
    1 | PROFESSIONAL | 15      | Hello    
    2 | VENDOR       | 15      | Hi    
    3 | PROFESSIONAL | 16      | My status    
    4 | PROFESSIONAL | 18      | Abcd    

Followers

    ID  | user_type    | user_id | follower_type | follower_id  
    1   | PROFESSIONAL | 15      | PROFESSIONAL  | 16    
    2   | VENDOR       | 15      | PROFESSIONAL  | 16    
    3   | PROFESSIONAL | 20      | PROFESSIONAL  | 17  

Я хочу получить все действия для PROFESSIONAL id 16 вместе с действиями всех пользователей, которым PROFESSIONAL id 16 является следующее.

Так что я должен получить результат как -

Activity  

    ID | user_type    | user_id | status  
    1  | PROFESSIONAL | 15      | Hello    
    2  | VENDOR       | 15      | Hi    
    3  | PROFESSIONAL | 16      | My status  

Я не уверен, как я могу получить его в одном запросе.Также я использую Yii 1.1.Поэтому я хочу получить записи с использованием моделей Yii.Любая помощь в построении запроса MYSQL или использовании Yii CActiveRecord для получения желаемых результатов была бы полезной.

1 Ответ

0 голосов
/ 04 июня 2018

Хорошо.Итак, сейчас я делаю это, как показано ниже

$criteria = new CDbCriteria;    
$criteria->select = 't.*';    
$criteria->join = 'LEFT JOIN followers AS f ON (t.user_id = f.user_id AND t.user_type = f.user_type)     
WHERE (f.follower_id='.$user_id.' AND f.follower_type = "'.$user_type.'")    
OR (t.user_id='.$user_id.' AND t.user_type = "'.$user_type.'")';    

Мне бы хотелось узнать, есть ли какое-либо более эффективное решение, доступное.

...