db 쿼리에 관해서 조언을 구합니다.. > 십년전오늘

십년전오늘

10년전 추억의 책장을 넘기며

db 쿼리에 관해서 조언을 구합니다.. 정보

db 쿼리에 관해서 조언을 구합니다..

본문

DB쿼리 문에 대해서 문의좀 드릴게요..
좀 어거지성으로 예제 드려서 난해한감이 있네요..

다음과 같이 테이블이 있을때, 어떻게 처리 하는게 좋은 방법인지..
의견을 구합니다..


mydb=> select * from 상품;
 번호 |  카테고리 | 모델 | 상품명
----------------+------+------
   1  |   핸드폰  | hp01 | 삐삐롱폰
   2  |   시계    | wa01 | 얼마니시계
   3  |   모니터  | mo01 | 흑백모니터
   4  |   핸드폰  | hp02 | 애니토라
   5  |   시계    | wa02 | 팔에감어시계
   6  |   시계    | wa03 | 짝퉁시계
(6 rows)


mydb=> select * from 소유자;
 번호 |  모델 | 이름    | AS위치
----------------+------+-------
   1  |  hp01 | 이병혼  | 서울
   2  |  wa01 | 김대히  | 광주
   3  |  mo01 | 나명품  | 평양
   4  |  hp02 | 안성귀  | 인천
   5  |  wa02 | 피카추  | 외계
   6  |  wa03 | 이병혼  | 서울
   7  |  hp02 | 나명품  | 평양
   8  |  wa03 | 나명품  | 평양
   9  |  wa03 | 나명품  | 평양
(9 rows)


상품.모델 과 소유자.모델은 PK와 FK로 연결
상품 에서 모델명을 삭제 할때 소유자의 모델넘버 모두 삭제 하고 자 할때

Ex) DELETE FROM `상품` WHERE `상품`.`모델` = wa03
    을 했을경우, 소유자 필드의 wa03 으로 된 나명품으로 등록된 내용이 전부 같이 삭제 되고자 함

검색은 INNER JOIN 한다고 했을때..
SELECT * From `소유자` INNER JOIN `상품` on (소유자.모델 = 상품.모델)

삭제 처리를 하고자 하는데, 어떻게 처리를 해야 할지 모르겠네요..



좋은 방법 있으면 조언 부탁드릴께요..

예제문 함께 주시면 더 감사드리구요 ㅠㅠ

댓글 전체

delete from `소유자` where 모델 in (select 모델 from `상품` where 상품명='$상품명')
이런 걸 말씀하시는건가... 질문이 이해하기 어려워요 ^^;
말러님 위와 같이 쿼리를 실행 하였는데요, 각각 하나씩의 테이블 내용만 삭제가
되네요.. 제가 원하는건, 상품의 테이블에서 모델항목을 지웠을때 소유자테이블의
모델도 지워 지는건데요...
제가 이해를 잘못해서 그런걸까요?
조인시켜서 하나의 쿼리로 두 테이블에서 삭제를 하고 싶다는 뜻이군요.
다음을 테스트해보세요.

delete a, b from `상품` as a, `소유자` as b where 모델='$모델' AND a.모델 = b.모델
전체 135,051
십년전오늘 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT