Yii2 でこの SQL クエリをどのように記述しますか?
SELECT * FROM table
WHERE column1 IN (SELECT column2 FROM table WHERE column1 = 5)
Yii2 でこの SQL クエリをどのように記述しますか?
SELECT * FROM table
WHERE column1 IN (SELECT column2 FROM table WHERE column1 = 5)
YourModel
name で表を表すという名前のモデルを考えてみましょうtable
。次に、クエリは次のようになります。
$subQuery = YourModel::find()->select('column2')->where(['column1' => 5]);
$query = YourModel::find()->where(['column1' => $subQuery]);
$models = $query->all();
また、以前にも同様の質問がありました。
Yii::$app->db->createCommand('SELECT * FROM table
WHERE column1 IN (SELECT column2 FROM table WHERE column1 = :val)', [':val' => 5])->queryAll();
['id' => 1, 'name' => 'Victor'] のような連想配列を返します