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

use*_*946 0 php doctrine symfony1 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
Run Code Online (Sandbox Code Playgroud)

(参见上一个问题的架构)

如何离开加入用户和最后的"任务",而不是全部?

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

j0k*_*j0k 6

如果我们认为$user_id您在上一个问题中有内部用户ID 并且根据您的架构,您可以尝试这样做:

$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();
Run Code Online (Sandbox Code Playgroud)

这是Doctrine 中子查询的文档.