본문 바로가기
OS/mySQL

등록일+수정일 둘중 빠른 날짜를 기준으로 SELECT 하기 (UNION 사용)

by 빵기 2012. 2. 21.

화면 정렬 기존 영업지원시스템방식으로 등록 및 수정한 사람이 처음부터 보이도록...
이란 요청이 왔다 ㅡㅡ+ 걍 암나 보면돼지 왜 저리 해야해 ㅡㅡ++ 까다롭긴...

아 반나절 걸렸다...
어이상실... ㅋ
솔직히 한번도 안써보긴 했다 UNION 먼가 했더니...
두개이상 SELECT문의 결과들에 대한 데이터의 합집합을 가져올때 UNION을 사용한다고 한다.
나참내... 배웠어야알지? 아님 써보기라도 했어야지... 역시 경험이야 프로그램은 ㅋ

나중에 응용도 할겸 블로그에 써본다...
안에 UNION 의 SELECT 부분을 설명하자면...
조건 1. 수정일은 절대 등록일보다 전 날짜가 될수가 없다
조건 2. 수정일이 없을경우 '0000-00-00 00:00:00' 이라고 INSERT 된다.
그래서 추출을 수정일이 '0000-00-00 00:00:00' 일때 등록일을 가져오고...
수정일이 '0000-00-00 00:00:00' 이 아닌경우로 가져온다 그것들을 UNION 하고 단 전체적으로 SELECT를 쌓아서
기준을 전체적은 KEY 값과 UNION 한 KEY을 비교해 정렬을 시킨다...
뭐 이런식이다... 대충... 말 설명이 어렵네...
책좀 다시 잘 봐야것다... 여렇 기능이 있는데 잘 안쓰니 모르지 .... ㅡㅡ+++

SELECT *
FROM
(SELECT * FROM sawon_info) A,
(
SELECT sawon_seq, sawon_ipsa_date a FROM sawon_info WHERE sawon_up_date='0000-00-00 00:00:00'
UNION
SELECT sawon_seq, sawon_up_date a FROM sawon_info WHERE sawon_up_date NOT IN ('0000-00-00 00:00:00')
)B
WHERE A.sawon_seq=B.sawon_seq ORDER BY a DESC

댓글