반응형
가장 오래된 항목과 일치하는 모든 항목 선택
MariaDB/MySQL에는 다음과 같은 테이블이 있습니다.
table (key1, key2, date)
와 함께INDEX(key1, key2)
이제 가장 오래된 엔트리를 사용합니다.
SELECT * FROM `table` ORDER BY `date` ASC LIMIT 1
마지막으로 일치하는 모든 엔트리가key1
그리고.key2
첫 번째 쿼리부터:
SELECT * FROM `table` WHERE `key1` = ? AND `key2` = ?
어떻게 해서든 하나의 질문으로 단순화할 수 있을까요?
그냥 사용하다join
:
select t.*
from `table` t join
(select t.*
from `table` t
order by `date` asc
limit 1
) tt
on t.key1 = tt.key1 and t.key2 = tt.key2;
MariaDB 10.2에서 Common Table Expressions가 도입된 이후 이 쿼리를 작성하는 다른 방법을 사용할 수 있습니다.WITH 구문을 사용하면 쿼리는 다음과 같습니다.
WITH t_oldest AS (SELECT * FROM `table` ORDER BY `date` asc LIMIT 1)
SELECT t.* FROM `table` AS t,t_oldest
WHERE t.key1 = t_oldest.key1 AND t.key2 = t_oldest.key2;
언급URL : https://stackoverflow.com/questions/45122399/select-all-entries-that-match-the-oldest-entry
반응형
'source' 카테고리의 다른 글
Pylint와 함께 하나의 특정 라인을 무시할 수 있습니까? (0) | 2023.01.12 |
---|---|
예외 스택 추적 인쇄 (0) | 2023.01.12 |
java.lang의 원인StackOverflowError(스택오버플로우오류) (0) | 2023.01.12 |
Ajax POST 요청으로 인해 장고 CSRF 체크가 실패함 (0) | 2023.01.12 |
배열에서 가장 가까운 번호 가져오기 (0) | 2023.01.12 |