用户有更多任务,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做到这一点......我在这里看到了一些例子,但它们没有用。
答案 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。