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 5510 게시물 읽기
No. 5510
두개의 테이블에서 결과물을 가져오는 부분에 대해 문의드립니다.
작성자
박민호(dolphine)
작성일
2009-12-17 17:46ⓒ
2009-12-17 20:14ⓜ
조회수
6,441

안녕하세요..
기본적인 조인 같은데...도통 모르겠습니다...이리저리 해보고 있긴 한데....
두개의 테이블에서 조인을 하여 데이타를 가져오는데 그 값을 하나의 행으로 가져오려고 합니다.

예를 들어

Table A
strLoginID     strLoginName
    001                홍길동
    002                모니터
    003                컴퓨터
    004                키보드

Table  B
strLoginID       strRegNum     strSchoolLevel
     001                111                       1
     002                222                       2
     003                333                       3
     004                444                       4

제가 생각한 쿼리는 아래와 같은데...
select distinct m.strLoginID, m.strLoginName, s.strRegNum, s.strSchoolLevel  from
  mplus_member_list m, sasa_member s
  where m.strLoginID = s.strLoginID
  order by m.strLoginName desc

결과는 이렇게 나옵니다.
strLoginID    strLoginName    strRegNum      strSchoolLevel
    001                홍길동           
    001                홍길동                 111                       1
    002                모니터           
    002                모니터                 222                       2
    003                컴퓨터           
    003                컴퓨터                 333                       3
    004                키보드           
    004                키보드                 444                       4

결과는 아래와 같이 나오게 하고 싶은데 어떤 부분이 잘못된 걸까요....
Group By가 들어가야 될거 같긴 한데 어떻게 해야 될지 잘 모르겠습니다.
조언좀 부탁드리겠습니다. 감사합니다.

strLoginID    strLoginName    strRegNum      strSchoolLevel
    001                홍길동                 111                       1
    002                모니터                 222                       2
    003                컴퓨터                 333                       3
    003                키보드                 444                       4
 

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

쿼리상의 문제 보다는

테이블에 있는 자료상에 문제가 있는듯 합니다.

2개 테이블에 자료가 중복으로 들어가 있다고 밖에는 볼수 없을듯 합니다...

지나가다가님이 2009-12-18 10:42에 작성한 댓글입니다. Edit

아....그래요?..
DB 테이블 구조 등은 수정할 수가 없는데...
이거 머리아프네요....
암튼 조언 감사합니다.

박민호(dolphine)님이 2009-12-18 11:07에 작성한 댓글입니다.

구조상 어쩔수 없는 상황이면 group by를 하셔야 할듯 합니다.

select  strLoginID   , strLoginName   , max( strRegNum )  ,  max(  strSchoolLevel

....

지나가다가님이 2009-12-18 11:41에 작성한 댓글입니다. Edit

여기 눈팅하다가 전에 비슷한걸 봤는뎅..

이거로 되려나요?

 

CREATE TABLE testa(a char(3),b varchar(100))
INSERT testa
SELECT '001','홍길동' UNION ALL
SELECT '002','모니터' UNION ALL
SELECT '003','키보드' UNION ALL
SELECT '004','마우스'

CREATE TABLE testb(idx char(3),nVal INT, sVal int)
INSERT testb
SELECT '001',111,1 UNION ALL
SELECT '002',222,2 UNION ALL
SELECT '003',333,3 UNION ALL
SELECT '004',444,4

---------------------------------------------------------

SELECT COALESCE(A.a,B.idx) idx,ISNULL(A.b,0) nValA,ISNULL(B.nVal,0) nValB, ISNULL(B.sVal,0)
FROM testa A FULL OUTER JOIN testb B ON A.a = B.idx

 

 

언젠가..님이 2009-12-29 17:43에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
5513mysql -> mssql 변경시..
초보자
2009-12-24
5908
5512프로시져 안에 동적 쿼리를 생성하는데...돠주십시오 굽신굽신;;
김민호
2009-12-24
7398
5511bulk insert 오류 관련 [1]
김샛별
2009-12-23
9859
5510두개의 테이블에서 결과물을 가져오는 부분에 대해 문의드립니다. [4]
박민호
2009-12-17
6441
5509버퍼 래치 유형 [1]
하홍민
2009-12-17
9080
5504depth나 level 컬럼이 없는 테이블의 무한 트리 구하기... [2]
조중규
2009-12-16
6866
5497MSSQL 2008 자동으로 백업하는 방법 문의 [3]
조현철
2009-12-11
8470
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다