Background Image

FORUM

조회 수 23 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄


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

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컬럼을 변경하고 싶은 경우)

 

 

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

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

 

 

  • ?
    오명환 2021.06.10 08:56
    (1번 답변) 큐브리드는 9.0이상 버전부터 update 구문에서 multi table을 지원합니다. (https://www.cubrid.org/manual/ko/9.3.0/sql/query/update.html 참고하세요.)
    그래서, 위의 실패한 쿼리를 다음과 같이 수정하시면 수행 가능합니다.

    update A inner join B on A.a = B.a and A.a LIKE '%1234%' set A.a = B.b

    (2번 답변) 위의 수정한 질의처럼 3개의 table을 조인해서 사용하시면 됩니다.

    참고로 현재 올려주신 질의는 join과 좌우절단 like를 사용하는 것이므로 데이타량에의해 쿼리 응답 속도 느려질 수 있습니다.
    join 조건은 index를 통해 꼭 튜닝을 하시고, 좌우절단 like은 index scan을 할 수 없으므로 다른 조건을 통해 결과 좌우절단 like scan 량을 줄이는 것을 권고드립니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 1264
3448 Log 문의 new jungsin 2021.06.25 5
3447 JAVA VM is not running 오류 new jungsin 2021.06.25 4
3446 cubrid가 실행이 안됩니다. 4 file 푸른호랑이 2021.06.23 30
3445 큐브리드의 테이블 생성일시, 수정일시 등을 확인 할 수 있는 쿼리를 알고싶습니다. 1 풍류인생 2021.06.22 20
3444 서버에서 broker 에러가 발생합니다. 1 동구리 2021.06.21 19
3443 iso8601을 cast하려면 어떻게 해야되나요? 1 자등명법등명 2021.06.21 17
3442 큐브리드 업타임 확인은 어떻게 하나요 1 Ji 2021.06.21 16
3441 파일 업로드 시 생기는 DB 다운 6 오렌지 2021.06.14 66
3440 혼합형 데이터 정렬 방법 1 큐키 2021.06.14 28
3439 Docker에 설치된 큐브리드에서 cubrid server stop이 안됩니다. 4 새옹지마 2021.06.13 53
3438 VIEW SELECT 오류 (실행오류: -494) 2 tenbirds 2021.06.11 57
3437 혼합형 데이터 정렬방법 1 큐키 2021.06.11 28
» 두 가지 테이블의 컬럼을 검색해서 업데이트 하는 쿼리 1 ots21 2021.06.09 23
3435 php 7.3 + Cubrid 8.4.4 연동 문제 1 땡땡이 2021.06.08 31
3434 파라미터 바인드 문제.. 2 오션나인 2021.06.04 42
3433 .AccessViolationException (C#) 1 swift 2021.06.03 44
3432 큐브리드 커맨드 내 spool과 set echo 의 사용가능 여부 1 솨솨솨 2021.06.01 42
3431 에러가 왜 날까요... 잘 입력 되다가 이런 에러가 나네요.. 파이선 사용자입니다. 4 오션나인 2021.05.27 58
3430 큐브리드 관련 파일 용량 문제. 3 file 김상원 2021.05.25 60
3429 큐브리드에서 오프소스 Talend 사용 가능한 지 문의드립니다. 3 본부장 2021.05.24 45
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 173 Next
/ 173

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2147 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales