책 내용 질문하기
2권 8장 128p 문제 6
도서
2020 시나공 정보처리기사 실기 [기본서]
페이지
128
조회수
282
작성일
2020-09-16
작성자
탈퇴*원
첨부파일

SELECT 학생정보.학번, 학생정보.이름, 결제.결제여부 

FROM 결제, 학생정보, 신청정보

WHERE 결제.학번 = (SELECT 학번 FROM 신청정보 WHERE 신청과목 = ‘OpenGL’);

 

이러한 식으로 답을 적은 후 정답을 확인해보니 WHERE문에서 차이가 많이 나더라구요.

다른 방식의 답이 존재할 수도 있다고 생각을 해서 제가 적은 답이 혹시나 정답일지도 모른다는 생각에 문의를 합니다.

 

혹시 위와 같은 식으로 적었을 때의 결과 혹은 기존 답과의 차이를 알 수 있을까요?

답변
2020-09-17 16:06:49

안녕하세요 길벗수험서 운영팀입니다.

 

테이블을 조인 없이 from으로 호출하는 경우 각 튜플*튜플의 결과(카티션 곱)가 나옵니다.

회원님의 sql 코드의 경우 9*7*9 = 567개의 튜플에서 opengl의 학번을 가진 모든 튜플들이 조회되며, 잘못된 결과가 나오게 되죠.

 

여러 테이블을 호출하는 경우 반드시 조인으로 연결해야된다는 점을 잊지 마세요.

 

행복한 하루되세요 :)

  • 관리자
    2020-09-17 16:06:49

    안녕하세요 길벗수험서 운영팀입니다.

     

    테이블을 조인 없이 from으로 호출하는 경우 각 튜플*튜플의 결과(카티션 곱)가 나옵니다.

    회원님의 sql 코드의 경우 9*7*9 = 567개의 튜플에서 opengl의 학번을 가진 모든 튜플들이 조회되며, 잘못된 결과가 나오게 되죠.

     

    여러 테이블을 호출하는 경우 반드시 조인으로 연결해야된다는 점을 잊지 마세요.

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.