sql 분석좀 부탁드려요

sql 분석좀 부탁드려요

QA

sql 분석좀 부탁드려요

본문

if ($p_filter) {
    $sql .= " and p_idx in (select idx from ".$g5['price_table']." where p_filter = '".$p_filter."')";
}

 

전체 sql 불러오는 소스중에 궁금한 부분이 있어서 질문 남깁니다

 

price테이블에서 p_filter의 값이 p_filter 인 idx 값을 가져와라 인것 같은데 여기서 in은 왜 들어가고

and는 왜 들어가는건가요? 그리고 다른테이블의 컬럼인 p_idx는 또 왜 들어가는지...

그리고 p_filter의 값에 데이터가 안들어가고 p_filter가 들어가있는데 저건 뭘 의미하는거죠? 

이 질문에 댓글 쓰기 :

답변 3

해당 부분만 보면 알기 어렵습니다
보여지는 소스만 보면

sql의 원래 구조가 있고 p_filter라는 변수가 들어가면 추가로 구문이 들어가는 형태인데

IN안에 들어가있는 SELECT문으로 price_table에서 p_filter컬럼값과 일치하는 idx값을 p_idx값과 비교하여 일치하는 값들만 나오게 되어있습니다.
IN의 경우 결과값(위의 sql문에선 idx값) 여러개이면 해당 여러개의 결과에 일치하는 값을 보여주게 되어있습니다.
WHERE abc = '1' 1인경우만 출력
WHERE abc IN ('1', '2') 1이거나 2인경우 출력

답변을 작성하시기 전에 로그인 해주세요.
전체 156
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT