조인쿼리 질문이있습니다. 0 4 1,206

by db초보자 [Oracle 기초] SQL DB Query [2021.04.29 01:20:57]


userPinfo - userPInfo_no (pk), user_no (fk), product_no (fk) 

userinfo - user_no(pk) .... (여러개컬럼)

userProduct - userprProduct_no(pk) ...user_no(fk)

 

질문입니다. userPinfo 테이블에서 userProduct 테이블의 컬럼의 테이터들을 가져와야하는데요!!! 어떻게 가져와야할지 잘 안되어서 질문올립니다. 

 

by 마농 [2021.04.29 08:34:23]
-- userProduct 테이블에 product_no 컬럼이 있을 것 같은데...
SEELCT *
  FROM userPinfo a
 INNER JOIN userProduct b
    ON a.user_no    = b.user_no
   AND a.product_no = b.product_no
;

 


by db초보자 [2021.04.29 09:35:25]

답글 감사드립니다. 

제가 글을 새벽에써서 제대로 전달을 못한 부분이있는거같습니다.

userPinfo 참조 ->  userinfo <- 참조  userProduct

userPinfo 테이블은 userinfo 테이블을 참조하고있고 userProduct 테이블은 userinfo 테이블을 참조하고있는

데요 userPinfo 테이블에서 userinfo 테이블과 userProduct 테이블의 데이터값을 user_no fk로 끌어와서 

데이터를 뿌려주는 sql 쿼리를 짜려했었고 

select upi.*,u.*,up.* from userPinfo upi
       left outer join userinfo u on upi.user_no = u.user_no
       left outer join userproduct up on u.user_no = up.user_no
where u.user_no = 1; 

결과 위에 보이는 조인으로 원하는 데이터를 얻었는습니다. 

여기서 고민인게 과연 저 쿼리가 맞는지 틀린지 보다는 완성도? 라고 해야할까 

저렇게 쿼리를짜서 불러오는게 맞는지가 의문이듭니다.


by 마농 [2021.04.29 09:56:35]

1. SELECT * 보다는 필요한 항목만 나열하세요.
 - * 사용시 쿼리의 의도를 파악하기 힘듭니다.
 - 쿼리의 의도를 알아야 쿼리가 맞는지 판단이 가능합니다.
2. LEFT JOIN 이 맞는지 INNER JOIN 이 맞는지 판단하세요.
 - LEFT JOIN 을 필요에 의해 사용한 것인지? 습관적으로 사용한 것인지?
 - 기본은 INNER JOIN 이고 필요시에만 OUTER JOIN 을 사용해야 합니다.


by db초보자 [2021.04.29 12:17:49]

답변 너무 감사합니다!!! 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입