database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 6755 게시물 읽기
No. 6755
데이터 조회 질문드려요 ^^
작성자
이성원(wolfre)
작성일
2013-10-29 21:46
조회수
7,801

안녕하세요 디비 초보입니다 ^^

 

디비 조회에 관하여 질문드립니다.

우선 테이블 구조는 아래와 같습니다.

 

A 테이블

num DataList

1 10,20,30

2 40,50,60

3 77,77,72

 

 

B 테이블

DataList etc..

10 A

20 B

30 C

 

A의 DataList의 내용(10,20,30)을 키값으로 B의 테이블에 든 내용을 모두 찾고 싶습니다...

 

도저히 개념이 잡히질 않아 질문드려요 ㅠ.ㅜ

 

이상입니다.

 

항상 행복한 나날이 가득하시길...

이 글에 대한 댓글이 총 5건 있습니다.

테이블 구조가 제1정규화를 위반하고 있기 때문에 어차피 성능은 포기한 것으로 보고 걍 쉽게 다음과 같습니다.

 

WITH tblA( num, DataList )
AS
(
SELECT 1, '10,20,30'
UNION ALL SELECT 2, '40,50,60'
UNION ALL SELECT 3, '77,77,72'
)
,
tblB( DataList, etc )
AS
(
SELECT 10, 'A'
UNION ALL SELECT 20, 'B'
UNION ALL SELECT 30, 'C'
)
 
SELECT *
FROM tblA
INNER JOIN tblB ON ',' + tblA.DataList + ',' LIKE '%,' + CAST( tblB.DataList AS VARCHAR(MAX) ) + ',%' 
;
우욱님이 2013-10-29 22:38에 작성한 댓글입니다.
이 댓글은 2013-10-29 22:39에 마지막으로 수정되었습니다. Edit

우욱님 친절한 답변 그리고 정확한 답변에 감사드립니다 ^^

 

항상 많은걸 배워가네요... 정말 감사드립니다.

 

아. 염치 없지만 추가 질문 하나 더 드릴게요 우욱님...

 

tblB의 경우는 정적인 테이블이지만... tblA는 조건에 따라 변경된 컬럼 값으로 tblB를 찾아야한는데 이럴 경우는 어떤 방법을 쓰나요? 저는 단순히 조인문으로 계속 고민했어요 ㅠㅠ

이성원(wolfre)님이 2013-10-29 23:11에 작성한 댓글입니다.
이 댓글은 2013-10-29 23:30에 마지막으로 수정되었습니다.

제1정규화에 대해서는 http://ko.wikipedia.org/wiki/%EC%A0%9C_1_%EC%A0%95%EA%B7%9C%ED%98%95 를 읽어보세요.

이에 따라 A테이블을 정규화하면

num data
1 10
1 20
1 30
2 40
2 50
2 60
3 77
3 72

와 같이 이뤄져야 합니다.

 

그러면

SELECT *
FROM tblA
INNER JOIN tblB
   ON tblA.Data = tblB.DataList
;

와 같은 식으로 쉽게 join해서 사용할 수 있습니다.

우욱님이 2013-10-30 00:46에 작성한 댓글입니다. Edit

추가 질문에 대한 답은

우욱님 답변 쿼리에 단순 조건절만 추가하면 될듯.

   AND tblA.num = ?

마농(manon94)님이 2013-10-30 08:28에 작성한 댓글입니다.
이 댓글은 2013-10-30 08:28에 마지막으로 수정되었습니다.

답변 주신 우욱님 마농님 진심으로 감사드립니다 ^^

이성원(wolfre)님이 2013-10-30 10:00에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6759select가 궁금합니다... [1]
김우성
2013-11-09
6999
6757커서 이용 조회구문
DBDB
2013-11-05
7151
6756가로 데이터를 세로로 출력하고 싶습니다. [2]
초보자
2013-11-01
9783
6755데이터 조회 질문드려요 ^^ [5]
이성원
2013-10-29
7801
6754'ORDER' 구문이 잘못된것... [2]
김우성
2013-10-27
7995
6752도와주세요 부탁드립니다.
임홍래
2013-10-21
6755
6751MSSQL2008 -> MYSQL 로 데이터 이관. [5]
신승범
2013-10-17
12288
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다