Q&A

  • SQL을 처음 시작하는데 ..
SQL을 잘몰라서 그러는데요.

아래의 경우 어떻게 처리하면 좋을까요.

One 이라는 DB 와 Two 라는 DB가 있습니다.

Two라는 DB안에 One의 레코드가 있으면 One의 DB자료를 안보이게 할려고 하는방법좀

부탁드립니다.


예) One의 원본 Data       Two의 원본 Data
     1                      2
     2                      4
     3
     4

위와같이 자료가 존재할경우

결과는 One     Two  
       1       2
       3       4

One의 자료는 삭제하는것은 아니고요 안보이게 하는 것이거든요.

설명이 잘했는지는 모르겠는데요.  부탁드립니다.
2  COMMENTS
  • Profile
    kim 2002.05.08 02:51

    음..

    어떤 DB를 쓰시는진 모르겠지만.. 오라클의 경우에는 minus를 사용하면 됩니다.

    select * from two
    minus
    select * from one

    이러면 Two테이블의 내용중 One테이블에 있는 내용은 제거한 나머지를
    보여줌니다.

    도움이 되시길...
  • Profile
    최은석 2002.05.08 02:48
    방법은 여러가지가 있을수 있지여..
    다음은 EXISTS 를 사용한 것입니다....
    우선 One, Two 테이블의 필드명을 sample 라고하고...

    SELECT A.sample
    FROM One A
    WHERE NOT EXISTS (SELECT 'X' FROM Two B
                                    WHERE A.sample = B.sample)

    아래처럼 해도 결과는 마찬가지...
    SELECT A.sample
    FROM One A, Two B
    WHERE A.sample <> B.sample


    답이 됐는지 모르겠네여....