Background Image

FORUM

2009.12.05 03:48

oid select 질문입니다.

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

단축키

Prev이전 문서

Next다음 문서

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

자료실에 있는 큐브리드를 이용한 데이터베이스 이해와 실습의 문제에서

create table items ( name varchar(10), price int, primary key (name) );  

create table gamuser( id varchar(10), passwd varchar(10), inventory set(items), primary key(id) );

이렇게 테이블을 생성후에
insert into items values ( '노랑머리', 500 );
insert into items values ( '파랑머리', 600 );
insert into items values ( '선글라스', 300 );
insert into items values ( '장갑', 200 );
insert into items values ( '목걸이', 400 );  
--
insert into gamuser values ('user1', 'abcd', {(select items.identity from items where name = '노랑머리')});
insert into gamuser values ('user2', '1234', {(select items.identity from items where name = '노랑머리'),
                                                                (select items.identity from items where name = '선글라스')});
 이렇게 데이터를 넣은후에
select * from gamuser where id = 'user1';
gamuserd 테이블의 user1을 조회하면 inventory의 값이 oid 로 나오는데요.

주소를 따라간 값을 출력하려면 어떻게 해야하나요.


  • ?
    seongjoon 2009.12.07 00:56
    다음과 같은 쿼리를 사용하며 될 듯 싶습니다.
    select * from items where items in (select inventory from gamuser where id = 'user1');
    원하시는 결과가 아니시라면 댓글 주세요.
  • ?
    남재우 2009.12.09 06:21
    OID 를 사용하여 다른 테이블을 참고하는 경우에는 path expression 방법을 씁니다. 즉 <OID 를 가지고 있는 필드명>.<참고하는 테이블의 필드명> 형태로 사용합니다.
    select items.name from gamuser 와 같이 사용할 수 있습니다. 하지만 예에서는 단순히 OID를 참고하고 있는 것이 아니라 set 형태로 참고하고 있으므로 set derived table 형태와 같이 사용해야 합니다. set 을 가상의 테이블로 만들어 질의를 처리하는 것입니다. 주의할 점은 원래 하나의 레코드가 set 안의 원소 개수만큼 레코드가 늘어나므로 주의하실 필요가 있습니다.
    select item.name, item.price from gamuser, table(itemas) as t(item) 과 같이 질의 합니다. items 라는 set 필드를 t 라는 가상의 테이블로 만들고 가상의 테이블상의 필드명을 item 이라고 정의하는 것입니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 55
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4461
1315 큐브리드 메니져가 실행이 되지 않습니다. 1 슈퍼뚱땡이 2016.06.08 9632
1314 문의 드립니다. 1 지원아비 2010.05.24 9637
1313 데이터베이스 검사시에 에러 1 천상하늘 2010.02.08 9637
1312 multiset 관련 질문은 CUBRID 7.3 Q&A 게시판으로 이동되었습니다. 1 admin 2010.04.09 9643
1311 데이터 백업 및 복구 관련 문의 1 삼돌이 2013.09.04 9643
1310 CUBRID 2008 R1.4 도움말 페이지 찾을수 없음 2 그림자 2009.06.12 9649
1309 다중복제에 대해 또 문의 드립니다~~ 3 샤키 2010.08.11 9650
1308 broker 구동이 안되네요 3 히로 2010.10.28 9651
1307 초보가 DB 이전에 대해 문의를 드립니다. 5 푸른잔디 2009.12.01 9655
1306 큐브리드 파이썬 드라이브는 어디서 다운받을 수 있나요? 2 까망군 2011.02.15 9659
1305 [컴파일 오류] cas_cci.h", line 38.2: 1506-218 (E) Unknown preprocessing directive #ident. 1 이행복 2011.02.08 9664
1304 dataReader 1 땅콩z 2013.07.11 9669
1303 쿼리 문제 3 소라게 2010.03.03 9671
1302 중복생성 결과로 인한 질문드립니다. 1 ssamdib 2017.04.03 9672
1301 desc처럼 테이블 정보보는 방법은요 2 짱똘 2009.08.17 9678
1300 큐브리드 2008 호스팅 업체가 있습니까? 1 안지민 2009.06.17 9681
» oid select 질문입니다. 2 마준 2009.12.05 9682
1298 System.Data.OleDb.OleDbException (0x80004005): Cannot communicate with server 오류 4 나이젤 2014.05.28 9685
1297 다음과 같은 에러로인해 db실행이 않됩니다. 1 file SoMa 2010.07.24 9686
1296 Cubrid FUNCTION 한글 깨짐 문제 3 file 록밥 2017.02.24 9686
Board Pagination Prev 1 ... 130 131 132 133 134 135 136 137 138 139 ... 200 Next
/ 200

Contact Cubrid

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