database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 31083 게시물 읽기
No. 31083
left outer join 구문 문의
작성자
매수신호(sdrock)
작성일
2017-06-26 16:35ⓒ
2017-06-26 17:24ⓜ
조회수
5,094

 

아래 두개 구문을 예를 들때(가, 나)

두개 다 결과 값은 동일한데

두개 구문의 처리 결과값(inner 를 쓰던 left outer를 쓰던) 이  동일하다고 봐도 되는건가요?

예) 가

select * 

from A

left outer join B on A.id = B.id  

where A.date = '2017-04-04'

and b.gubun = 'A'

-----

예) 나

select * 

from A

INNER join B on A.id = B.id'

where A.date = '2017-04-04'

and b.gubun = 'A'

 

이 글에 대한 댓글이 총 4건 있습니다.

같진 않죠

 

case 별로 동일한 값이 나올 수 있고

 

B에 없는 값이 A에 존재하는 경우는 다른 값이 나올 수 있습니다.

 

업무 로직에 따라 맞게 쓰면 되겠죠

김주왕(kimjuking)님이 2017-06-26 16:53에 작성한 댓글입니다.
이 댓글은 2017-06-26 16:55에 마지막으로 수정되었습니다.

left outer join 조건으로 할려면

on 절에 and b.gubun='A'를 넣어야 합니다.

 

where 조건으로 들어가면

결과가 같아요.

 

집합의 개념을 잘 이해하고 있으면 왜 그런지 알 수 있습니다.

박인호(paerae)님이 2017-06-26 19:42에 작성한 댓글입니다.

가)의 쿼리는 아우터 조인을 사용했지만
b 에 대한 조건을 Where 절에 줌으로 인해 아우터 조인이 무효화됩니다.
결국 이너조인과 같은 결과가 나오게 되는 거구요.
목적이 불분명한 쿼리가 됩니다. 이렇게 사용하면 안됩니다.
아우터 조인을 할 것인지? 이너조인을 할 것인지 목적을 명확하게 해야 합니다.
1. 아우터 조인
SELECT *
  FROM a
  LEFT OUTER JOIN b
    ON a.id = b.id
   AND b.gubun = 'A'           -- 요기
 WHERE a.date  = '2017-04-04'
;
2. 이너 조인
SELECT *
  FROM a
 INNER JOIN b
    ON a.id = b.id
 WHERE a.date  = '2017-04-04'
   AND b.gubun = 'A'           -- 요기
;

마농(manon94)님이 2017-06-28 09:49에 작성한 댓글입니다.

 답글 주신 모든 분들 감사합니다

 

정말 도움이 되었습니다

매수신호(sdrock)님이 2017-06-29 17:04에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
31087visual studio 2013에서 mysql이용시 timeout설정부탁합니다. [1]
정다다
2017-07-08
5199
31085프로시저 내에서 IF문을 쓰려 하는데요 자꾸 오류가 납니다.
최기철
2017-06-27
4878
31084DB서버 튜닝, 속도 향상에 대한 문의입니다. [2]
권성용
2017-06-27
5392
31083left outer join 구문 문의 [4]
매수신호
2017-06-26
5094
31080load data구문 질문드립니다. [1]
goblin
2017-06-05
5628
31079MYSQL에서 엑셀의 roundup 같은 함수가 있나요? [2]
이중희
2017-06-03
5942
31078mysql 프로시저 실행 권한 관련 문의 드립니다.
문정준
2017-06-02
5888
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다