2

是否有可能使:

$q->createQuery('q')
  ->whereIn('q.id', $q2)

其中 $q2 是另一个 Doctrine_Query 对象。因为我的子查询很复杂,我不想用 SQL 来写...

4

2 回答 2

2

不幸的是,根据Doctrine API 文档,您不能将另一个查询对象传递给whereIn(),因此您必须事先获取您的 ID-s 并将它们传递到一个数组中。不过要小心,因为如果您传递一个空数组,那么这些 ID将不会被过滤。换句话说:它将返回表中存在的所有行,而不是没有。

于 2011-03-25T15:32:01.250 回答
0

使用 whereIn 时,参数应该是一个数组。您可以使用 execute(array(), Doctrine_Core::HYDRATE_ARRAY) 返回数组而不是对象。

于 2011-12-04T18:04:57.267 回答