Notice
Recent Posts
Recent Comments
Link
- Arawn's Dev Blog
- Outsider's Dev Story
- Toby's Epril
- Benelog
- NHN 개발자 블로그
- SK 플래닛 기술 블로그
- OLC CENTER
- 소프트웨어 경영/공학 블로그
- 모바일 컨버전스
- KOSR - Korea Operating System …
- 넥스트리 블로그
- 리버스코어 ReverseCore
- SLiPP
- 개발자를 위하여... (Nextree 임병인 수석)
- "트위터 부트스트랩: 디자이너도 놀라워할 매끈하고 직관…
- Learning English - The English…
- real-english.com
- 'DataScience/Deep Learning' 카테…
- Deep Learning Summer School, M…
- Deep Learning Courses
민서네집
OUTER JOIN - WHERE 절의 조건을 ON 절에 쓰면 무시된다. 본문
OUTER JOIN - WHERE 절의 조건을 ON 절에 쓰면 무시된다.
MySQL 에서 쿼리를 작성했는데, OUTER JOIN 에서 WHERE 절에 쓸 것을 ON 절에 조건으로 주었더니, 그 조건이 그냥 무시되었다.
SELECT
A.COL1,
B.COL1
FROM
A
LEFT JOIN
B
ON A.COL1 = B.COL1
AND A.USE_YN = 'Y'
AND B.USE_YN = 'Y'
위의 쿼리에서
AND A.USE_YN = 'Y' 조건이 무시된다.
즉 쿼리의 결과에 A.USE_YN = 'N' 인 ROW도 SELECT 된다.
즉, ON 절에서는 JOIN 에 관련된 조건만 써야하고, JOIN 에 관계없는 조건은 무시된다는 사실...
위의 쿼리는 아래와 같이 변경해야 한다.
SELECT
A.COL1,
B.COL1
FROM
A
LEFT JOIN
B
ON A.COL1 = B.COL1
AND B.USE_YN = 'Y'
WHERE
A.USE_YN = 'Y'
이 쿼리는 결과에는 A.USE_YN = 'N' 인 ROW는 포함되지 않는다.
'Database' 카테고리의 다른 글
SQL Formatter (0) | 2018.02.20 |
---|---|
ERwin - 컬럼명 고정시키기(Harden) (0) | 2013.07.22 |
국내 오픈소스 DB툴 Tadpole (올챙이)를 소개 합니다. (0) | 2013.06.29 |
Transaction 테스트 (0) | 2013.06.28 |
Please stop using SELECT MAX(id) (0) | 2013.06.21 |
Comments