Не можете получать информацию о новостной ленте подписчика в Yii?
У меня есть две таблицы
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 ответ
Хорошо. Итак, сейчас я делаю это, как показано ниже
$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.'")';
Я хотел бы знать, есть ли какое-либо более эффективное решение, доступное.