Q&A

  • Query 문제 - table a, b중 a에만 있는 Data를 가져오고 싶을때.
안녕하세요.. 오랜만에 쓰네요. 첨에는 여기 무지많이 이용했는데..

요새는 조금 뜸했네요.

각설하고..

table aaa, 안에는 없고 table bbb안에만 있는 Data를 끌어오고자 하는데 안되서 질문합니다.

문제는 aaa의 table Primary key는 x,y,z이고 bbb의 Table Primary key는 x,y입니다.

아래와 같이 SQL문을 했는데 안되네요.. 어디에 문제가 있는지 알려주시면 감사하겠습니다.



예)

select * from bbb

where (x,y) not in (Select distinct x,y from aaa)

order by 1, 2



고수님 부탁드립니다.

1  COMMENTS
  • Profile
    mafioso 2000.09.26 04:22
    주니 wrote:

    > 안녕하세요.. 오랜만에 쓰네요. 첨에는 여기 무지많이 이용했는데..

    > 요새는 조금 뜸했네요.

    > 각설하고..

    > table aaa, 안에는 없고 table bbb안에만 있는 Data를 끌어오고자 하는데 안되서 질문합니다.

    > 문제는 aaa의 table Primary key는 x,y,z이고 bbb의 Table Primary key는 x,y입니다.

    > 아래와 같이 SQL문을 했는데 안되네요.. 어디에 문제가 있는지 알려주시면 감사하겠습니다.

    >

    > 예)

    > select * from bbb

    > where (x,y) not in (Select distinct x,y from aaa)

    > order by 1, 2

    >

    > 고수님 부탁드립니다.



    위와 같은 pair 단위의 in 조건은 Oracle 에서는 가능하지만 ms-sql에서는 않됩니다.

    DBMS가 어떤건지는 모르겠지만 아래의 방법도 생각을 해보세요.



    select bbb.*

    from bbb left outer join aaa

    on bbb.x = aaa.x

    and bbb.y = aaa.y

    where aaa.x is null

    order by 1, 2