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
운영게시판
최근게시물
Oracle Q&A 38941 게시물 읽기
No. 38941
DELETE 관련 간단한 질문요
작성자
궁그미
작성일
2011-10-06 13:42
조회수
4,006

간단할지 모르겠네요.

검색을 해봐도 잘 안나와서 질문드려요.

table A  = column a1, a2

table B = column b1, b2 

이런 구조고요.

원하는 작업은 이렇습니다.(문법은 맞지않고 의미만 봐주세요)

delete from A

where A.a1 = B.b1

and A.a2 = B.b2

네 굉장히 간단한 질문이네요.

인라인쿼리로 작성하려고 해봤으나 결과가 생각대로 나오지 않아 질문올립니다.

[제가 작성했던 이너쿼리]

delete from (

select * from A, B where A.a1 = B.b1 and A.a2 = B.b2

)

아시는 분 답변 부탁드립니다.

이 글에 대한 댓글이 총 4건 있습니다.

delete from t# a where exists ( select 'x' from t2#  b where a.컬럼 = b.컬럼 )

채용근(taiji97)님이 2011-10-06 14:20에 작성한 댓글입니다.

자문자답합니다 ㅠㅠ

채용근님 댓글 감사합니다  근데 실제로 컬럼이 A에 a1, a2만 있는것도 아니고 B에 b1, b2만 있는게 아니라서 알려주신 방법으로는 처리되지 않을것 같습니다.

꼼수를 알게되어 답글올립니다.

delete from A where (a1, a2) = (select B.b1, B.b2 from A, B where A.a1=B.b1 and A.a2=B.b2)

이상입니다. 컬럼이 여러개면 여러개를 가로로 묶으면 되는군요 ㅠㅠ

궁그미님이 2011-10-06 14:36에 작성한 댓글입니다. Edit

채용근님의 답변도 마찬가지 의미인데 오해하신듯 하네요.
조인 조건절에 조인될 컬럼들을 and 절로 얼마든지 연결하시면 됩니다.

DELETE a
 WHERE EXISTS (SELECT 1
                 FROM b
                WHERE b.b1 = a.a1
                  AND b.b2 = a.a2
               )
;

그리고 작성하신 쿼리의 서브쿼리는 굳이 조인이 필요하지 않습니다.
서브쿼리의 결과가 1건이라면 = 을 사용해도 되지만
여러건이라면 IN을 사용해야 합니다.

DELETE a
 WHERE (a1, a2) IN (SELECT b1, b2 FROM b)
;

마농(manon94)님이 2011-10-07 10:27에 작성한 댓글입니다.

아 그렇군요~ 

답변 수준이 높아서 이해를 못한것 같습니다.

추가 설명 감사드립니다. 

말씀하신대로 서브쿼리에서 조인은 없앴습니다.

궁그미님이 2011-10-07 11:03에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
38944토드 Export Data로 Insert SQL 파일 추출 관련 질문입니다. [1]
조동건
2011-10-07
9151
38943암호화 대상 컬럼의 크기는 얼마나 잡아야되나요? [2]
흰자
2011-10-06
4104
38942컬럼을 나누면서 connect by를 하려는데요 [3]
ㅇㅇ
2011-10-06
5319
38941DELETE 관련 간단한 질문요 [4]
궁그미
2011-10-06
4006
38940밑에 커서오류 이어서 문제..미치겠습니다. [3]
박주영
2011-10-05
4753
38939pl/sql 최대 열기 커서 수 에러 도움 급합니다. [3]
박주영
2011-10-05
4216
38937댓글의 총 갯수 [2]
서유미
2011-10-05
5899
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다