Итак, я пытаюсь выполнить запрос, чтобы получить последние записи каждого пользователя, используя отношения CakePHP. В моей карте и пользователь модели у меня есть:Как я могу присоединиться к последним записям в CakePHP?
class Map (and User) extends AppModel {
public $hasMany = 'Geolog';
}
И я пытаюсь делать этот запрос, чтобы поймать последнюю запись каждого пользователя. dg_maps и dg_users имеют много-много отношений.
SELECT
dg_users.id,
dg_users.email,
dg_maps.id,
dg_maps.latitude,
dg_maps.longitude,
dg_maps.timestamp
FROM
(SELECT
*
FROM
dg_maps
ORDER BY dg_maps.timestamp DESC) dg_maps
JOIN
dg_geologs ON dg_geologs.map_id = dg_maps.id
JOIN
dg_users ON dg_users.id = dg_geologs.user_id
GROUP BY dg_geologs.user_id;
Что я делаю сейчас:
$this->Map->query('SELECT dg_users.id, dg_users.email, dg_maps.id, dg_maps.latitude, dg_maps.longitude, dg_maps.timestamp FROM (SELECT * FROM dg_maps ORDER BY dg_maps.timestamp DESC) dg_maps JOIN dg_geologs ON dg_geologs.map_id = dg_maps.id JOIN dg_users ON dg_users.id = dg_geologs.user_id GROUP BY dg_geologs.user_id');
Но, я знаю, что лучший метод, то это, используя методы Cake. Итак, как я могу это сделать?
Спасибо всем!