FORUM

조회 수 28421 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
안녕하세요, 

제가 근무하는 회사에서는 MySQL 을 기반으로 하는 시스템이 좀 많은 편입니다.

주로 MySQL 을 그리고 MS-SQL 을 사용했지만,
무료라는 이점과 PHP와의 궁합 문제로 MySQL 의 사용 빈도가 높았습니다.

그런데 이번에 오라클이 Sun을 인수한 것을 보고는 아무래도 DB 쪽에 대해 생각을 많이 가지게 되는 것 같습니다.

해서, 쿼리를 하나씩 변경해보고자 하는데 MySQL 함수들 때문에 몇가지 막혀 질문을 드려 봅니다.

그 중 하나로, MySQL 의 GROUP_CONCAT 함수를 이용하면,
여러 레코드 결과를 하나의 레코드 결과로 묶어 획득 할 수 있습니다.

간단한 예제로는 다음과 같습니다.

# 테이블 : user_join_groups  (사용자가 가입한 그룹 정보)
group_id  / Int형 / FK / 가입한 그룹의 고유번호
user_id  / Int 형 / FK / 사용자 고유번호

# 테이블 : groups (그룹 메타 정보)
group_id / Int 형 / PK / 그룹 고유번호
name / Varchar / 그룹 이름


     SELECT GROUP_CONCAT(DISTINCT CONCAT(B.uid,':',B.name) SEPARATOR ';') as join_group
     FROM user_join_groups AS A
     INNER JOIN groups AS B
     ON A.group_id = B.group_id
     GROUP BY A.user_id

상기 쿼리의 경우, A 테이블에서 user_id 로 group by 하여, A의 group_id 와 B의 group_id 로 join 된 결과를
하나의 레코드 결과로 만들어 줍니다.

이와 같이 여러 줄의 row 를 하나의 row 로 결과를 합쳐주는 큐브리드 내장 함수가 있는지 궁금하며,
내장 함수가 없다면 이런 것을 DB 쿼리 상에서 처리하기 위한 방법이 있는지 궁금합니다.

감사합니다.

  • ?
    Prototype 2009.04.29 04:49
    안녕하세요.
    GROUP CONCAT 함수의 경우 CUBRID 에는 1:1 대응하는 함수는 없습니다. 단, LIST 를 사용하면 같은 결과를 얻을 수 있습니다.
    사용예는 다음과 같습니다.

    MYSQL QUERY 가 SELECT col_1, GROUP_CONCAT(col_2 ORDER BY col_2 desc SEPARATOR, '^') FROM tbl group by col_1; 라고 가정하면

    1. 해당 컬럼이 INT 계열 컬럼일 경우
    SELECT col_1, LIST(SELECT int_column || '^' FROM tbl ORDER BY int_column desc) FROM tbl group by col_1;

    2. 해당 컬럼이 CHAR 계열 컬럼일 경우
    SELECT col_1, LIST(SELECT trim(char_column) || '^' FROM tbl ORDER BY char_column desc) FROM tbl group by col_1;

    로 응용하여 사용하실 수 있습니다.
  • ?
    차오이 2009.04.29 05:10
    네, 알려주신 방법으로 한번 해봐야 겠습니다.
    잘 될런지 모르겠네요..

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 7 admin 2024.04.23 14854
257 특정 테이블 최적화 시 에러 발생 3 인경수 2009.07.11 11233
256 [긴급] Java VM can not be started 메세지 원인?? 13 이석희 2009.07.07 20017
255 procedure 문의드립니다 1 삽질쟁이 2009.07.03 13974
254 The column name is invalid. 에러메시지 좀... 1 file 논픽션Lover 2009.07.02 21538
253 DataBase 검사 오류 1 file NonStop 2009.07.02 11898
252 초보질문 - insert할때 질문 1 rusell 2009.07.02 10806
251 데이터 보안기능 문의 1 secret hareton 2009.07.01 8
250 큐브리드와 php 연동을 할려는데 문제가?? 2 흑심품은연필 2009.07.01 12346
249 cubrid.jdbc.dirver.CUBRIDDriver 에러 4 논픽션Lover 2009.06.30 13851
248 복제 문의해요 3 삽질쟁이 2009.06.28 11814
247 select @@identity 1 펭귄 2009.06.27 20319
246 웹서버(Win)와 DB서버를 분리할 때 odbc설치 방법 2 안지민 2009.06.26 18101
245 안녕하세요? loaddb 에 대해 질문이 있습니다. 1 secret 서기97 2009.06.25 13
244 CUBRID-8.1.4.1032-linux 완전삭제 방법 1 secret rupee76 2009.06.25 9
243 ADD_MONTHS 함수의 사용 1 체리필터 2009.06.25 16563
242 재귀적 조인에 대한 쿼리를 저장할 수 있나요? 3 sizers 2009.06.23 20099
241 cubrid.jdbc.jci.JdbcCacheWorker에서 java.lang.NullPointerException 계속 발생하네요... 4 secret 거만쟁이 2009.06.23 30
240 spec 나 srpm 은 어디에서 받을 수 있나요? 5 아주가끔은 2009.06.21 10728
239 로그관련 문의부탁드립니다. 1 NonStop 2009.06.19 9839
238 Visual Basic 관련 문의 1 방랑아 2009.06.19 10590
Board Pagination Prev 1 ... 191 192 193 194 195 196 197 198 199 200 ... 208 Next
/ 208

Contact Cubrid

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

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

나눔고딕 사이트로 가기

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5