테이블 3개 조인한건데 policy_evaluation 테이블에 isdelete=0 조건을 서브쿼리로 처리 안해서 이상하게 작동하더라 ㄷㄷ쿼리 70줄짜리도있던데 그런건 어떻게 짜는거냐
야 쿼리를 먼저 테이블 조인을하고 조건을 나중에 같이 걸어야지
쿼린이 궁금한건데 서브쿼리에 데이터 먼저 필터링해서 줄어든 데이터로 조인하는게 더 성능 안좋냐
그렇게 했었는데 isdelete 저걸 WHERE절에 넣으니까 policy_evaluation에 행이 하나도 조회 안됐을 때 다른 테이블도 조회안되서.. 저렇게함
아님 조건을 걸면 조건절을 항상 먼저 읽어서 그것만 읽는데 서브쿼리는 어디에 박든 로우를 2배 조회하는 효과임
내가 원하는건 policy_list 전체 + policy_evaluation(isdelete=0) + users(해당하는 Row)인데 policy_evaluation의 행이 0이 되버리면 어떻게해야될지 모르겠음ㅋㅋ
그럼 서브쿼리에 조건을 걸면 서브쿼리의 조절을 먼저 읽는거 아님?
Left outer인데 0일때가 무슨 상관임???
서브쿼리는 실제 조인되는 셋이 합친 로우 말고 하나의 테이블 로우를 더 읽는 효과라궁..;
후 ㅈㄴ어렵당 원래는 서브쿼리 없이 WHERE L.policy_id=? AND E.isdelete=0 이렇게했는데 이렇게하면 policy_list도 아예 조회안되던데
처음엔 policy_evaluation에 해당하는 칼럼이 Null로 나오고 policy_list는 나올줄알았는데 왜 안나오는지 모르겠음
오우..이런..
70줄 넘어도 직접짜기도하는데 단순한건 대부분 orm - dc App
해당 댓글은 삭제되었습니다.
ㅋㅋㅋ 서브쿼리 방금 추가하면서 ㅈㄴ 더러워진듯 수정해야겠다
해당 댓글은 삭제되었습니다.
ㄳㄳ