Версия Cakephp: 3.5.
У меня есть таблица претензий .У проекта много претензий.Заявка имеет один проект, номер (1, 2, 3 и работает), и каждый номер может быть пересмотрен несколько раз.Комбинация project_id, number и rev_number делает уникальной заявку.Таблица выглядит примерно так (справа я пометил нужные строки в запросе):
+----+------------+--------+------------+---------+
| id | project_id | number | rev_number | i want |
+----+------------+--------+------------+---------+
| 1 | 2 | 1 | 1 | |
+----+------------+--------+------------+---------+
| 2 | 1 | 1 | 1 | <- this |
+----+------------+--------+------------+---------+
| 3 | 1 | 2 | 1 | |
+----+------------+--------+------------+---------+
| 4 | 1 | 3 | 1 | |
+----+------------+--------+------------+---------+
| 5 | 1 | 2 | 2 | |
+----+------------+--------+------------+---------+
| 6 | 1 | 2 | 3 | <- this |
+----+------------+--------+------------+---------+
| 7 | 1 | 3 | 2 | <- this |
+----+------------+--------+------------+---------+
Итак, я хочу получить самую последнюю редакцию (с наибольшим номером rev_number) для каждого номера заявки, где project_id =1.
SQL-файл, который я хочу создать с помощью ORM, похож на
SELECT Claims.*
FROM claims Claims
INNER JOIN (
SELECT number, MAX(rev_number) AS latest
FROM claims
WHERE project_id = 1
GROUP BY number) AS GroupedClaims
ON GroupedClaims.number = Claims.number
AND GroupedClaims.latest = Claims.rev_number;
Как этот SQL-файл можно создать с помощью ORM?Как производится INNER JOIN (SELECT ... )
?Я не могу найти решение с помощью join (), innerJoin (), innerJoinWith () или match () после изучения этого.