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
운영게시판
최근게시물
PostgreSQL Q&A 7472 게시물 읽기
No. 7472
join 을 이용해서 id 걸러낼때.
작성자
산하
작성일
2008-07-28 11:52
조회수
7,041

테이블 데이터가 이렇게 있다고 했을때,


1. 테이블 left_t


 l_id | l_title

----+--------

  1 | left_1

  2 | left_2

  3 | left_3


2. 테이블 right_t


r_id |  r_title

----+---------

  2 | right_2

  3 | right_3

  4 | right_4



B 테이블에서 A 테이블과 같은 ID 가 없는것들을 select 할려고 할때.. JOIN을 이용하지 않습니까?


일단..


select *

from

   left_t  right join right_t

   on left_t.l_id = right_t.r_id;



 l_id | l_title  | r_id |  r_title

----+--------+----+---------

  2 | left_2 |  2 | right_2

  3 | left_3 |  3 | right_3

    |        |  4 | right_4



즉, right join 했을때 left_t 의 id가 null인 것들이 제가 원하는 것들이죠.

이걸 뽑아낼려고,



select

   r_id, r_title

from (

   select *

   from left_t  right join right_t on left_t.id = right_t.id

   ) as joined_t

where l_id is null;



하면


r_id |  r_title

----+---------

  4 | right_4



이렇게 되긴 하는데요..

제가 궁금한것은..예전엔 이렇게 중첩 select를 안쓰고 join한번에 됐던것 같거든요???

마치..



select *

from

   left_t  right join right_t

   on

      left_t.l_id = right_t.r_id

   and

      left_t.l_id is null;



뭐 이런 비슷한 것처럼 말이죠.

저건 아닌것 같고..


원래 어떻게 하는게 맞는지요?

이 글에 대한 댓글이 총 2건 있습니다.
select *
from
   left_t  right join right_t
   on left_t.l_id = right_t.r_id where left_t.l_id IS NULL;

그냥 추가하시면 되는데요
그냥님이 2008-07-28 14:19에 작성한 댓글입니다.
이 댓글은 2008-07-28 14:20에 마지막으로 수정되었습니다. Edit

not exists

백수환(back17)님이 2008-08-01 22:07에 작성한 댓글입니다.
이 댓글은 2008-08-02 10:56에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
7475count(*) 의 성능은? [4]
산하
2008-07-29
6992
7474날짜가 중복이 안되게 등록하려고 하는데요 [1]
만수
2008-07-28
7134
7473SELECT 시에 인덱스를 강제로 지정하는 방법이 있나요? [2]
오래된남자
2008-07-28
6935
7472join 을 이용해서 id 걸러낼때. [2]
산하
2008-07-28
7041
7471PostgreSQL 데몬 시작 시 데몬이 시작이 안됩니다. [11]
김대청
2008-07-27
8501
7470PostgreSQL과 BIND 연동 해보신분 계신가요? [2]
지용남
2008-07-24
9123
7468union 에 order by 가 있을 경우 속도가 현저히 떨어 집니다. [14]
letsgofast
2008-07-21
10912
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다