У меня есть две таблицы SQL, мне нужно извлечь наибольшую временную метку из 2-й таблицы, и эта временная метка должна находиться в пределах диапазона.
Table: Projects
ID,Name,invoiceTotal,department
1,Project1,100,1
2,Project2,200,3
3,Project3,300,2
4,Project4,100,2
5,Project5,400,1
Table: Manning
ProjectID,timestamp
1,1547038287
1,1515558287
1,1501118287
5,1471118287
5,1481118287
Я играл с использованием PHP, чтобы сначала выполнить запрос с внутренним объединением, чтобы я мог получить данные обеих таблиц.
SELECT
project.ID,
project.name,
project.invoiceTotal,
manning.timestamp
FROM
manning
INNER JOIN projects ON project.ID = manning.ProjectID
WHERE
project.department = 1 AND
manning.timestamp BETWEEN 1547038287 AND 1301118287
ORDER BY
manning.timestamp ASC
Затем я перебираю PHP и запускаю процедурный код, чтобы отсортировать данные и затем отобразить их. Проблема в том, что это медленно, и это определенно не самый эффективный способ сделать это.
Итак, с данными этого примера я хотел бы получить результат:
1,Project1,100,1547038287
5,Project5,400,1481118287
Я пытался использовать «группировать по», однако, если порядок таблицы составления списка неправильный, я не получаю правильных результатов.
Спасибо за любую помощь. Я пытался использовать sqlfiddle.com, но сейчас мне кажется, что он не работает :(