yii2框架怎么寫子查詢

yii2框架怎么寫子查詢

YII中使用子查詢的方法

第一步,先創建一個子查詢,可以是基于 yiidbQuery 創建,也可以基于Model。

$subQuery?=?Order::find() ->where(['user_id'?=>?$userId]) ->andWhere(['status'?=>?$status]);

也可以增加排序,分頁,比如:

$subQuery->orderBy(['id'?=>?SORT_ASC]) ->offset($offset) ->limit($pageSize);

接下來就可以在我們的主查詢中使用這個子查詢了,只要是在mysql中可以寫子查詢的地方,都可以直接使用這個子查詢。

$list?=?(new?Query())->select($field) ->from(['order'?=>?$subQuery])?//?在這里使用了子查詢 ->leftJoin(['goods'?=>?OrderGoods::tableName()],?'order.id?=?goods.order_id') ->createCommand() ->queryAll();

最終生成的語句

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

php中文網,有大量免費的Yii入門教程,歡迎大家學習!

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享