gpt4 book ai didi

yii2 - Yii2查询条件存在

转载 作者:行者123 更新时间:2023-12-04 02:23:17 27 4
gpt4 key购买 nike

我有一个简单的Person树和parent_id

我不会建立(Yii2)查询来查找给定Person的所有子代,这些子代是其他人的父代(也就是不离开)。

输出的SQL应该如下所示:

select * from person t 
where exists (select 1 from person p2 where t.id = p2.parent_id);


但是找不到使用查询生成器构建此对象的正确方法,这里有一个方法 ->exists(),但是没有太多的文档/示例。

最佳答案

不知道我是否理解正确,但是你看起来像这样吗。

$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);


生成如下的sql:

SELECT * FROM `person` `t` WHERE EXISTS (SELECT 1 FROM `person` `p2` WHERE t.id = p2.parent_id)

关于yii2 - Yii2查询条件存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27484342/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com