0

一个用户有更多的任务,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

(请参阅我上一个问题的架构)

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

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

4

1 回答 1

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();

这是Doctrine中子查询的文档。

于 2012-12-29T13:37:55.483 回答