Laravel Eloquent를 사용하여 가장 최근 레코드 쿼리
주어진 테이블 열의 각 고유 값에 대한 최신 레코드를 검색하려면 Laravel의 Eloquent ORM 강력한 솔루션을 제공합니다. 시나리오와 이에 대한 설득력 있는 솔루션을 살펴보겠습니다.
시나리오:
"id", "seller_id", "와 같은 열이 있는 "snapshot"이라는 테이블을 생각해 보세요. 금액', 'created_at'입니다. 목표는 각각의 고유한 "seller_id"에 대한 가장 최근 행을 검색하는 것입니다.
Eloquent Query:
$latestSales = Snapshot::select('seller_id') ->groupBy('seller_id') ->havingRaw('MAX(created_at)') ->orderBy('created_at', 'DESC') ->get();
설명:
대체 쿼리(원시 쿼리):
원하는 경우 원시 SQL 쿼리를 활용하여 동일한 결과를 얻을 수 있습니다. 결과:
SELECT * FROM snapshot WHERE (seller_id, created_at) IN ( SELECT seller_id, MAX(created_at) AS max_created_at FROM snapshot GROUP BY seller_id ) ORDER BY created_at DESC;
이 쿼리는 하위 쿼리를 사용하여 각 "seller_id"에 대한 최신 행을 식별하여 각 그룹 내의 최대 "created_at" 값을 결정합니다. "seller_id"와 "created_at"(최신 기록을 나타냄) 쌍이 일치하는 행이 선택되고 "created_at"에 따라 내림차순으로 정렬되어 각 판매자의 최신 기록 목록이 생성됩니다.
위 내용은 Laravel Eloquent의 각 고유 값에 대한 가장 최근 기록을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!