yii2框架怎么写子查询
在yii中使用子查询的方法 第一步,先创建一个子查询,可以是基于 yii\db\Query 创建,也可以基于Model。 也可以增加排序,分页,比如: 接下来就可以在我们的主查询中使用这个子查询了,只要是在mysql中可以写子查询的地方,都可以直接使用这个子查询。 最终生成的语句$subQuery
= Order::find()
->where([
'user_id'
=>
$userId
])
->andWhere([
'status'
=>
$status
]);
$subQuery
->orderBy([
'id'
=> SORT_ASC])
->offset(
$offset
)
->limit(
$pageSize
);
$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