Background Image

FORUM

조회 수 27896 추천 수 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 도구 출시 안내 admin 2024.04.23 51
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
754 파이썬 스크립트로 Cubrid DB에 데이터 저장 문의 큐브릿파이썬 2020.09.08 181
753 Failed on handshake between client and server 에러가 계속 발생 합니다.. 3 file dwpark 2021.05.18 181
752 큐브리드에 있는 sql데이터를 다른사이트에 표출하는방법 3 꼴통개발자 2019.11.05 180
751 안녕하세요.. 초보적인 질문입니다, 1 Mi 2018.05.15 180
750 centos8에서 쉘스크립트 실행시 csql: command not found 오류 발생 6 kjn4345 2023.04.13 180
749 [CUBRID Admin] 테이블 컬럼 순서 변경 불가 12 tree1891 2023.11.05 178
748 cubrid 매니저 패스워드 공용으로 사용하는건가요?? 2 학아 2023.02.24 178
747 데이터타입에 궁금한게 있어 여쭤봅니다. 1 sql초보 2021.02.23 177
746 backupdb 문의드립니다, 1 동동 2020.02.05 175
745 Unloaddb로 백업 시 특정 테이블만 백업이 안되는 경우도 있나요? 3 Seonu 2021.01.11 175
744 Cubrid 이용 관련 문의 - 데이터 손실 1 flash 2022.11.24 174
743 ER-WIN으로 큐브리드 접속 시 에러 발생. 2 file airporti 2022.01.10 174
742 cubrid-node 쿼리 응답 없음 1 바삭상자 2019.03.08 174
741 안녕하세요!? 궁금한게있어서요 2 김진리 2017.08.24 173
740 CUBRID-JDBC-9.3.2.0016 드라이버 관련 os 호환이 되는지 문의드려요 1 dkkdkdkdkdk 2019.12.30 173
739 프로시저 클래스 등록 관련입니다. 1 mon 2020.04.16 173
738 큐브리드메니저 브로커 접속 에러 - 353 1 leemited 2020.06.24 172
737 데이터 내보내기 기능 오류 1 큐린이 2022.02.16 172
736 php 7.4 접속 에러 16 file jslee 2022.04.27 171
735 ADO.NET columninfos 반환값 관련 문의 2 file Js 2020.05.18 171
Board Pagination Prev 1 ... 158 159 160 161 162 163 164 165 166 167 ... 200 Next
/ 200

Contact Cubrid

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