yii2 子查询
时间: 2024-01-15 12:04:05 浏览: 212
在 Yii2 中,可以使用以下方式进行子查询:
1. 使用 ActiveQuery 对象的 where() 方法:
```
$subQuery = (new \yii\db\Query())
->select('id')
->from('table2')
->where(['status' => 1]);
$query = (new \yii\db\Query())
->select('*')
->from('table1')
->where(['in', 'table2_id', $subQuery]);
```
2. 使用 ActiveQuery 对象的 andWhere() 方法:
```
$subQuery = (new \yii\db\Query())
->select('id')
->from('table2')
->where(['status' => 1]);
$query = (new \yii\db\Query())
->select('*')
->from('table1')
->andWhere(['in', 'table2_id', $subQuery]);
```
3. 使用 ActiveRecord 对象的 find() 方法:
```
$subQuery = (new \yii\db\Query())
->select('id')
->from('table2')
->where(['status' => 1]);
$query = Table1::find()
->where(['in', 'table2_id', $subQuery]);
```
以上三种方式都可以实现子查询,具体选择哪种方式取决于具体情况。
阅读全文