두 가지 테이블의 컬럼을 검색해서 업데이트 하는 쿼리

by ots21 posted Jun 09, 2021


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
Window10 64bit
CUBRID Ver.
9.3.0
CUBRID TOOL Ver.
11
응용 환경(API)
java, php, odbc 등 입력


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------

안녕하세요 
 
질의 관련 질문드립니다

 

1. 하나의 테이블(A)에서 하나의 컬럼(a)를 검색하여
해당 컬럼에 특정 조건을 만족하는 값이 존재한다면,
두번째 테이블(B)에서 A테이블의 a컬럼과 동일한 값이 들어간 B.a 컬럼과 
두번째 테이블(B)의 다른 B.b컬럼을 검색하고
이때, B.b컬럼의 값이 존재할 경우 
A테이블의 a컬럼의 값을 B테이블의 b컬럼의 값으로 변경하고 싶습니다.

여러 개의 값이 존재한다면 모든 값에 맞도록 업데이트 하려고 합니다.

 

혹시 이럴 때는 어떻게 쿼리를 짜야할까요?

 

검색까지는 아래와 같이 성공하였고
업데이트문은 여러가지 방식으로 시도해보고 있는데 다 실패하고 있습니다. 

 

검색 쿼리문(검색은 성공합니다.): 
SELECT B.a B.b 
FROM tableA A INNER JOIN tableB B
ON A.a LIKE '%1234%'
WHERE B.a = A.a 

 

 

실패하는 업데이트 쿼리문 중 하나는 아래와 같습니다:

UPDATE tableA A, tableB B

SET A.a =

   (SELECT B.b FROM table A

   INNER JOIN table B

   ON A.a LIKE '%1234%'

   WHERE B.a = A.a)

 

 


2. 또, 업데이트 할 때 
여러 테이블의 컬럼의 값을 변경하게 된다면, 어떻게 해야할까요?

(위의 상황에서, B테이블의 b컬럼의 값으로 A테이블의 a 컬럼, C테이블의 c컬럼을 변경하고 싶은 경우)

 

 

답변주시면 감사드리겠습니다!!

잘 부탁드립니다. 감사합니다. 

 

 


Articles

1 2 3 4 5 6 7 8 9 10