여러 개의 방문자가있는 테이블이 있습니다. 내 결과 목록에는 각 방문자의 마지막 방문 만 표시되어야합니다. 나는 각 방문자가 한 번에 표시됩니다 같은Eloquent Laravel로 두 개의 쿼리를 중첩하는 방법
->orderBy('visitors.created_at', 'desc')
->groupBy('visitors.descr')
결과 목록이 올바른지 할 경우
id | created_at | descr | website | source
------------------------------------------
2 | 2017_12_22 | john | john1.com | a
3 | 2017_12_23 | marc | ssdff.com | b
4 | 2017_12_24 | john | john1.com | c
5 | 2017_12_24 | tina | def.com | b
6 | 2017_12_25 | stef | abc.com | a
7 | 2017_12_26 | john | john2.com | c
:
테이블처럼 보인다. 그러나 나는 방문자의 최신 발생을 필요로하고 결과 목록은 첫 번째 발생을 보여줍니다.
select *
from visitors as v
INNER JOIN (select descr , MAX(created_at) as max_created
from visitors as v
group by descr) AS M
where v.descr = M.descr AND v.created_at = M.max_created
ORDER BY created_at DESC
누군가가 설득력이 점을 얻거나 나를 다른 방향으로 얻을 수 있도록 수 : 그래서 그 대신 ID 2의 나는 ID 7
다음 쿼리는 그 문제를 해결보고 싶은데요?
작동하지 않는 (역전 된) Eloquent 쿼리를 게시 할 수 있습니까? – Laerte