So verwenden Sie eine Unterabfrage in yii
Der erste Schritt besteht darin, eine Unterabfrage zu erstellen, die basierend auf erstellt werden kann auf yiidbQuery oder basierend auf Model.
$subQuery = Order::find() ->where(['user_id' => $userId]) ->andWhere(['status' => $status]);
kann auch Sortierung und Paging hinzufügen, zum Beispiel:
$subQuery->orderBy(['id' => SORT_ASC]) ->offset($offset) ->limit($pageSize);
Dann können wir diese Unterabfrage in unserer Hauptabfrage verwenden, solange es sich um einen Ort handelt, an dem Unterabfragen in MySQL geschrieben werden können. Sie können diese Unterabfrage direkt verwenden.
$list = (new Query())->select($field) ->from(['order' => $subQuery]) // 在这里使用了子查询 ->leftJoin(['goods' => OrderGoods::tableName()], 'order.id = goods.order_id') ->createCommand() ->queryAll();
Die endgültige generierte Aussage
SELECT * FROM ( SELECT * FROM `od_order` WHERE ( `user_id` = '1' ) ORDER BY `id` ASC LIMIT 10 OFFSET 1 ) `order` LEFT JOIN `od_order_goods` `goods` ON `order`.id = goods.order_id
Die chinesische PHP-Website bietet eine große Anzahl kostenloser Yii-Einführungs-Tutorials, die jeder gerne lernen kann!
Das obige ist der detaillierte Inhalt vonSo schreiben Sie eine Unterabfrage im yii2-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!