我有对象通过中间表与mano连接。
firstName
并获得有关城市的评论:
class City{ /**
* @return \yii\db\ActiveQuery
*/
public function getReviews()
{
return $this->hasMany(Reviews::className(), ['id' => 'review_id'])
->viaTable('city_review', ['city_id' => 'id']);
}
}
问题: 如何从评论表中选择不在city_review表中的评论?
答案 0 :(得分:0)
我不熟悉yii activerecord语法
但是您需要的查询在下面。
SELECT review.* FROM review
LEFT JOIN city_review cr ON cr.city_id = review.id
WHERE cr.id IS NULL
此代码的结果应该与您需要的类似,但是您需要进行测试。
$reviews = Reviews::find()
->select('review.*')
->leftJoin('city_review', '`city_review`.`city_id` = `review`.`id`')
->where(['city_review.id' => NULL])
->with('city_reviews')
->all();