簡體   English   中英

從表中排除值的樣本

[英]Sample excluding values from the table

我有對象通過中間表連接mano。

class City{ /**
     * @return \yii\db\ActiveQuery
     */
    public function getReviews()
    {
        return $this->hasMany(Reviews::className(), ['id' => 'review_id'])
            ->viaTable('city_review', ['city_id' => 'id']);
    }
}

並獲得城市評論:

  $reviews = $city2->getReviews()->all();

問題:如何從評論表中選擇不在city_review表中的評論?

我對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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM