gpt4 book ai didi

php - Doctrine:复杂的 JOIN 问题

转载 作者:行者123 更新时间:2023-12-02 02:30:24 25 4
gpt4 key购买 nike

我在 Property 和 Feature 之间有多对多关系。我必须从属性表中提取结果,但前提是两个或多个特征相关。

即。属性(property) #1 与“游泳池”和“花园”有关。属性 #2 仅与“游泳池”相关。因此,当我询问具有两者“游泳池”和“花园”的属性时,它应该只返回属性 #1。

我尝试了所有可能的组合,例如复杂的“where()”、“whereIn”、“join...with”、“exists()”等,但无法解决。它要么返回所有属性,要么不返回任何属性,我真的不记得我尝试过的所有事情。拜托,帮帮我,我已经浪费了 8 个小时,我快要死了

最佳答案

因此,换句话说,您想要选择与多个特定功能相关的所有属性。

尝试:

function findPropertyForFeatures($features)
{
$q = Doctrine_Query::create()->from('Property p');
$i = 0;
foreach ($features as $f)
{
$i++;
$q->innerJoin("p.Feature f$i WITH f$i.id = {$f->id}");
}
return $q->execute();
}

Features 应该是一个 Doctrine_Collection,其中包含您希望加入的功能。将 $f->id 替换为 $f['id'] 以支持 Doctrine 数组,或者替换为 $f 如果你想提供一个充满特征 ID 的简单数组。

关于php - Doctrine:复杂的 JOIN 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3988174/

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