• 技术文章 >php框架 >YII

    yii2框架怎么写子查询

    爱喝马黛茶的安东尼爱喝马黛茶的安东尼2019-12-09 13:52:30原创1744

    在yii中使用子查询的方法

    第一步,先创建一个子查询,可以是基于 yii\db\Query 创建,也可以基于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入门教程,欢迎大家学习!

    以上就是yii2框架怎么写子查询的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:yii2 框架 子查询
    上一篇:yii判断是否get方式提交 下一篇:yii怎么创建自己的项目
    大前端线上培训班

    相关文章推荐

    • YII2中andWhere如何多个or查询

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网