2개의 테이블이 1:多 로 관계가 맺어져 있을 때, 중복을 제거하고자 할 경우 DISTINCT ON 을 사용하자.
아래의 예는 item과 item_layout 테이블끼리 idx값으로 join을 하고 순서는 item_layout 테이블의 order 필드로 하기 위한 예이다.
그냥 하면 되지만 item_layout 에 item.idx 값이 중복으로 들어가 있어 부득이하게 중복을 제거할 필요가 있어 아래의 Query를 사용했다.
(백수환님 고맙습니다.)
SELECT DISTINCT ON (idx) * FROM (SELECT a.*, b.order FROM item a, item_layout b WHERE a.idx=b.itemidx AND a.itemtype='I" ORDER BY b.order) v;
'DataBase' 카테고리의 다른 글
[MySQL] root 패스워드 잊어버렸을 때 (Windows 버전) (0) | 2009.07.20 |
---|---|
[PostgreSQL] 값에 따른 선택적 업데이트 (CASE WHEN) (0) | 2009.07.10 |
[PostgreSQL] seq 값 맞추기 (setval) (0) | 2009.06.15 |
[PostgreSQL] 도움말, 매뉴얼. (0) | 2009.06.15 |
[PostgreSQL] 문자열 치환 업데이트 (0) | 2009.06.15 |