Wednesday, September 23, 2015

Re: SQL autojoin to ORM Cake3


SOLVED

In belongsTo table I add:
        $this->hasMany('TopLogs', [
           
'className' => 'Logs',
           
'strategy' => 'select',
           
'conditions' => function ($exp, $query) {
                $query
->leftJoin(
                   
['TmpLogs' => 'logs'],
                   
[
                       
'TopLogs.group_id = TmpLogs.group_id',
                       
'TopLogs.id < TmpLogs.id'
                   
]);
               
return $exp->add(['TmpLogs.id IS NULL']);
           
}
       
]);




On Wednesday, September 23, 2015 at 10:42:05 AM UTC-3, uru...@gmail.com wrote:
Hi, I have this SQL a need to transform to ORM. I I appreciate any approach


LOGS
id - group_id - data
1        1      'Lorem ipsum 1'
2        1      'Lorem ipsum 2'
3        2      'Lorem ipsum 3'


SQL return the latest record in your group:
id - group_id - data
2        1      'Lorem ipsum 2'
3        2      'Lorem ipsum 3'

SELECT logs.id,logs.group_id,logs.data
FROM logs
LEFT JOIN logs AS latest
ON
(logs.group_id = latest.group_id AND logs.id < latest.id)
WHERE latest
.id IS NULL
ORDER BY logs
.id DESC


--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

No comments: