CI 묻고 답하기

제목 액티브 레코드 where에 관해서
카테고리 CI 2, 3
글쓴이 주말생각 작성시각 2020/12/24 12:02:21
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 9642   RSS

현제 CI 3을 사용 중이고 액티브 레코드를 활용해서 쿼리문을 만들던 중에 난관에 봉착하여 질문드립니다.

액티브 레코드의 조인 기능을 활용해서 3개의 테이블을 연결 하는 쿼리문을 만들고 있습니다.

아래는 그 코드 입니다.

$this->db->select("각 컬럼들");

$this->db->from('테이블01');

$this->db->join('테이블02, '테이블02.키1 = 테이블02.키1');

$this->db->join('테이블03', '테이블01.키1 = 테이블03.키1');

$this->db->where('테이블02.a2date', 검색할 날짜);

$this->db->or_where('테이블03.a3date', 검색할 날짜);

$this->db->group_by("그룹 바이의 컬럼");

$this->db->order_by("정렬용 컬럼", "desc");

$query = $this->db->get();

 

라스트 쿼리로 완성된 쿼리문을 보니

SELECT 컬럼들

FROM 테이블01

JOIN 테이블02

ON 테이블01.키 = 테이블02.키

JOIN 테이블03

ON 테이블01.키 = 테이블03.키

WHERE 테이블02.a2date = '2020-12-22' OR 테이블03.a3date = '2020-12-22'

GROUP BY 그룹바이 컬럼들

ORDER BY 정렬할 컬럼 desc

이렇게 나오는데 

원하는 값을 출력하려면 아래와 같은 쿼리문이 되어야 하는데 현재 방법을 모르겠습니다.

SELECT 컬럼들

FROM 테이블01

JOIN 테이블02

ON 테이블01.키 = 테이블02.키

JOIN 테이블03

ON 테이블01.키 = 테이블03.키

AND 테이블02.a2date = '2020-12-22' OR 테이블03.a3date = '2020-12-22'

GROUP BY 그룹바이 컬럼들

ORDER BY 정렬할 컬럼 desc

 다음글 긴급입니다 코드이그나이터를 보안 문제 관련입니다. (3)
 이전글 서버이전중에 db문제인듯한 1305에러입니다..ㅠㅠ (1)

댓글

PureAni / 2020/12/24 12:09:45 / 추천 0
where 값을 join 에 넣겠다는거 맞나요?
변종원(웅파) / 2020/12/24 13:01:53 / 추천 0

저는 조금이라도 복잡해질 가능성이 있는 쿼리는 그냥 sql문으로 작성해서 작업합니다.

insert, update, delete는 AR로 사용.

주말생각 / 2020/12/24 13:06:35 / 추천 0

@PureAni 

where 값을 join 에 넣겠다는거 맞나요? -> 말씀이 잘 이해가 되지 않는데, 3개의 테이블을 조인하고 테이블02.a2date = '2020-12-22' OR 테이블03.a3date = '2020-12-22'란 조건으로 검색을 하려고 합니다.

한대승(불의회상) / 2020/12/24 13:21:41 / 추천 0
복잡한 쿼리는 웅파님 의견에 동의합니다.
주말생각 / 2020/12/25 13:41:01 / 추천 0
답변 감사합니다.