Symfony 1.4,Doctrine:如何获得最新的“加入”记录?

时间:2012-12-28 23:24:55

标签: php symfony1 doctrine symfony-1.4

用户有更多任务,1:N连接。

目视:

admin
 task1 2011/01/01 00:00:01
 task2 2011/01/01 00:00:04
 task3 2011/01/01 00:00:02
user2
 task1 2011/03/01 00:01:01
 task2 2011/03/01 00:01:04
 task3 2011/03/01 00:01:02

(请参阅我previous question的模式)

如何离开加入用户和最后一个“任务”,而不是全部加入?

问题是我不知道如何用纯SQL做到这一点......我在这里看到了一些例子,但它们没有用。

1 个答案:

答案 0 :(得分:6)

如果我们认为您在$user_id内有用户ID,并且根据previous question中的架构,您可以尝试:

$q = Doctrine_Query::create()
    ->select('u.*, t.*')
    ->from('User u')
    ->leftJoin('u.Task t')
    ->where('t.id IN (SELECT t2.id FROM Task t2 WHERE t2.owner_id = ? ORDER BY t2.id DESC LIMIT 1)', array($user_id));
$res = $q->execute();

以下是Doctrine中的the documentation for subqueries