개발 Q&A

제목 쿼리 질문좀 드리겠습니다.
글쓴이 템포 작성시각 2012/11/29 13:59:57
댓글 : 9 추천 : 0 스크랩 : 0 조회수 : 19095   RSS
오라클 DB로 돌려쓰는 중인데요

$this->db->select('distinct file_name, today", false);
...
...
$this->db->limit(10,1);
$this->db->order_by('today', 'desc');

이런식으로 생성했을 때 order_by는 먹히지만, file_name은 distinct가 되지 않고 나오네요

서브쿼리도 몇번써보고 false도 없애보고 했는데 결과론적으로 실패했습니다;

file_name이 distinct되면서 today로 정렬이 되고, 10개씩만 끊어오게 할려면 select문을 어떻게 바꿔줘야하나요?
혹은 다른 방법으로 풀어야 하나요??
 다음글 링크로 소스가져오기.. (3)
 이전글 .htaccess 문의드립니다. (2)

댓글

한대승(불의회상) / 2012/11/29 14:07:31 / 추천 0
헛발이2 / 2012/11/29 14:07:57 / 추천 0

$this->db->distinct();

한발...늦었땅
템포 / 2012/11/29 14:17:38 / 추천 0
불의회상님, 헛발이님 답변 감사합니다

$this->db->distinct() 가 있었네요 ㅎ
그런데..
select했을 때 'distinct file_name'만 쓰면 중복제거 후에 데이터를 가져오지만
select문에 뽑아내는 데이터를 file_name, today를 적으면 중복제거가 안되서 고민이었어요 ㅠ
$this->db->distinct()를 썻는데도 원하는 값은 얻지 못했네요 ㅠ

코드를 적자면
$this->db->distinct('file_name');
// $this->db->select('distinct file_name'); 파일이름 중복제거 후에 나옴
// $this->db->select('distinct file_name, today'); 파일이름 중복 제거가 안되서 나옴
   $this->db->from('test_file');
   $this->db->where('file_no', $file_no);
   $this->db->limit(10,1);
// $this->db->order_by('today', 'desc'); 정렬 방식          
   $result = $this->db->get()->result_array();
이렇게 되네요;;;
헛발이2 / 2012/11/29 14:31:19 / 추천 0
$this->db->distinct();
$this->db->select('file_name');
이렇게 사용하는거 아닌가요?

아니면 이렇게 해보세요~
$this->db->select('DISTINCT(file_name)');  


템포 / 2012/11/29 15:16:03 / 추천 0
헛발이님 답변 감사합니다
저도 댓글달고 아 이렇게쓰는게 아니네 하고 다시적었거든요 ㅎㅎ
모든 방법은 다 사용해서 중복제거 된 데이터가 나옵니다.ㅎㅎ

제가 질문을 잘못드린건지..그러니까..음..문제가

distinct해서 가져온 file_name이랑 , today 컬럼에 있는 값이랑 같이 가져오면 file_name이 distinct가 안되는게 문제입니다. ;;
헛발이2 / 2012/11/29 15:19:01 / 추천 0
음....
한대승(불의회상) / 2012/11/29 15:33:39 / 추천 0
distinct 는 컬럼 별로 적용 되지 않고 행 단위로 적용 됩니다.

즉...

a, 1
a, 1
a, 2

라고 있으면

a,1
a,2

로 나오는거죠.
템포 / 2012/11/29 15:54:23 / 추천 0
불의회상 , 헛발이2 /// 모두 답변 감사합니다

distinct를 사용할 경우, file_name 값이 1이고 today 가 2012-11-26 오후 3:13:42 뭐 이런식으로 들어가있는데

입력한 시간은 다를 수 밖에 없으니, 결국엔 각기 다른행으로 분류된다는 말씀이시군요

distinct가 안먹히는게 아니라, file_name과 today를 같이 잡아줘서 저렇게 나오는거였네요

좋은 답변 덕분에 오늘도 하나 얻어가네요 ㅎㅎ

답변 감사합니다.

-- distinct된 파일 이름과 today는 어떻게 따로 뽑을지 생각을 해봐여겠네요ㅠ
템포 / 2012/11/29 18:11:20 / 추천 0
distinct가 아닌 group by로 묶어서 해결했습니다~~~