조인관련문의 0 4 457

by 날아라! [MySQL] [2019.04.19 14:36:00]


안녕하세요.

아래와같이 2개의 테이블을 이용하여 조인을 했는데요.

결과값이 반복적으로 2개나오는데요. 어느부분이 잘못되었는지 조언좀 부탁드립니다.

 

 

by 신이만든지기 [2019.04.19 15:47:54]

조인키 중에 누락된 것이 있어보입니다.

각 테이블의 PK를 알려주셔야 정확한 답을 할 수 있을 것 같네요.

 


by 날아라! [2019.04.19 16:01:33]

답변감사합니다.

io_history  : idx

ORDER : orderid

위와같습니다...

저렇게 한 이유는 io_history값은 외부데이터를 가져와서 작업중인 서버에 인서트한후 불러오기 때문에

order테이블의 pk를 참조할수없습니다.

단, 계자번호, 금액, 입금자필드는 같은값이기때문에 위와같이 쿼리를 구성했는데요.

잘못된부분 조언부탁드릴께요


by 신이만든지기 [2019.04.19 16:31:55]

테이블에 만들어둔 일련번호성 PK 말고,

각 테이블에서 데이터를 유일하게 구분할 수 있는 컬럼들을 말씀드린 것입니다.

예컨데 order 테이블에서 

SELECT COUNT(*) FROM ORDER;


SELECT COUNT(*)
  FROM (
           SELECT DISTINCT bk_actnumber, account_name
             FROM ORDER
       );

할 경우 2개 쿼리의 ROW수가 같다면 bk_actnumber, account_name 가 해당 테이블의 pk가 되겠지요.

 

추측입니다만 날짜 컬럼이나, 상태값 컬럼이 PK 컬럼 중 하나일 가능성이 높아보입니다.

1. 양쪽 테이블에 날짜컬럼이 있다면 조인조건절에 추가해 보거나

2, 상태값이 2개가 반복되어 출력된다면, 해당 상태값 1개를  지정하여 1개만 나오도록 필터할 수도 있습니다.

 

 


by 날아라! [2019.04.19 16:43:38]

답변감사합니다.^^

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