그룹별을 사용하려고 했는데 최신 항목만 표시되지 않고 첫 번째 항목만 표시됩니다.
시간 설명별로 순서를 추가하고 싶었는데, orber by는 그룹별 이후에만 추가할 수 있습니다.
group by의 각 그룹에서 가장 큰 또는 가장 작은 데이터 행을 쿼리할 수 있는 방법이 있나요?
그룹별을 사용하려고 했는데 최신 항목만 표시되지 않고 첫 번째 항목만 표시됩니다.
시간 설명별로 순서를 추가하고 싶었는데, orber by는 그룹별 이후에만 추가할 수 있습니다.
group by의 각 그룹에서 가장 큰 또는 가장 작은 데이터 행을 쿼리할 수 있는 방법이 있나요?
옵션 1: 동일한 테이블 하위 쿼리 또는 조인을 통해 가장 큰 데이터 ID 찾기
<code>select * from track where id in(select max(id) from track group by target_id); or select * from track where id in(select substring_index(group_concat(id order by id desc),',',1) as maxid from track group by target_id);</code>
옵션 2: 두 단계로 쿼리합니다. 먼저 PHP에서 최대 ID를 쿼리한 다음 ID 배열을 통해 목록 데이터를 쿼리합니다
a.* 선택(사용자 ID별로 정보 그룹에서 ID로 max(id) 선택) b 왼쪽 조인 정보 a a.id=b.id
쿼리 결과를 저장하고 다시 검색하세요
사용 order by
<code>select * from ( select (@mycnt := @mycnt + 1) as ROWNUM,name,age from tb where AGe < 20 order by name,age ) as A where ROWNUM = 1 </code>
SqlServer만 이해하세요. SqlServer를 모방하여 작성되었으니 직접 사용해 보세요.
<code>SELECT a.id, a.user_id, a.info, a.create_time FROM (SELECT id, user_id, info, create_time FROM tbl_user ORDER BY user_id, create_time DESC, id DESC) a GROUP BY a.user_id</code>