d.r*_*aev 2 query-builder yii2
我有一棵简单的Person树parent_id.
我不会构建一个(Yii2)查询来查找给定的所有子项Person,即其他人的父项(也就是不离开).
输出SQL应如下所示:
select * from person t
where exists (select 1 from person p2 where t.id = p2.parent_id);
Run Code Online (Sandbox Code Playgroud)
但是找不到使用查询构建器构建它的正确方法,有一个方法->exists(),但没有太多关于它的文档/示例.
小智 5
不确定我是否理解正确,但你看起来像这样吗?
$subQuery = (new \yii\db\Query)
->select([new \yii\db\Expression('1')])
->from('person p2')
->where('t.id = p2.parent_id');
$query = (new \yii\db\Query())
->select('*')
->from('person t')
->where(['exists', $subQuery]);
$command = $query->createCommand();
print_r ($command->sql);
Run Code Online (Sandbox Code Playgroud)
生成sql如:
SELECT * FROM `person` `t` WHERE EXISTS (SELECT 1 FROM `person` `p2` WHERE t.id = p2.parent_id)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8536 次 |
| 最近记录: |