Q&A

  • [질문]delete query에서 table join이 가능한가요?
a 테이블의 데이터가 너무 많아 쿼리문으로 직접 작업해야 되기 때문에
조건에 맞는 a 테이블의 레코드를 삭제하려고 b 테이블과 조인을 해야하는데 가능한지?

예) delete a레코드 from message a, user b where a.uid=b.uid and b.class = 'imsi'
아시는 분 답변 좀 부탁드립니다.
2  COMMENTS
  • Profile
    safebear 2008.12.01 19:19
    MS SQL을 사용하신다는 가정하에..
    아래와 같이 테스트해보니..
    잘 동작하네요..

    Delete문 뿐만아니라.. Update문에도 적용됩니다.

    <!--CodeS-->

    create table a
    (
    uid int,
    msg varchar(10)
    )

    create table b
    (
    uid int,
    class varchar(10)
    )


    insert into a values(1, 'aa')
    insert into a values(2, 'aa')
    insert into a values(3, 'aa')
    insert into a values(4, 'aa')


    insert into b values(1, 'aa')
    insert into b values(2, 'aa')
    insert into b values(3, 'imsi')
    insert into b values(4, 'aa')


    delete a
    from a aa join b bb
    on aa.uid=bb.uid
    where bb.class = 'imsi'

    select * from a
    select * from b

    <!--CodeE-->
  • Profile
    신철우 2008.12.03 20:21
    감사합니다.