Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony 1.4,信条:如何获得最新的;加入;记录?_Php_Symfony1_Doctrine_Symfony 1.4 - Fatal编程技术网

Php Symfony 1.4,信条:如何获得最新的;加入;记录?

Php Symfony 1.4,信条:如何获得最新的;加入;记录?,php,symfony1,doctrine,symfony-1.4,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 (请参阅my中的架构) 如何左加入用户和最后一个“任务”,而不是全部得到 问题是我不知道如何使用纯SQL。。

一个用户有更多任务,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
(请参阅my中的架构)

如何左加入用户和最后一个“任务”,而不是全部得到


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

如果我们认为在代码里面有用户ID > $USELID ID/代码>,根据你的模式A,你可以试试这个:

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

这里是原则。

如果我们认为在代码中有用户ID > $USELIDID/CODE >,根据你的模式A,你可以试试这个:

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

这是原则。

复杂,我宁愿选择用一个多查询来解决:)这是另一个解决方案,我有时更喜欢使用较少的查询:-)复杂,我宁愿选择用一个多查询来解决:)这是另一个解决方案,我有时更喜欢使用较少的查询:-)