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 3983 게시물 읽기
No. 3983
쿼리 좀 도와주세요.
작성자
조인안되
작성일
2008-01-21 14:15ⓒ
2008-01-21 15:39ⓜ
조회수
4,230

[a table]
num   BBS_NO(게시판번호)   CONTENT
---------------------------
1         test_1    나는
1         test_2    너는
2         test_3    우리
3         test_3    바보


[b table]
idx    num    BBS_NO  file_no
-----------------------------
1       1        test_1     haha.txt
2       1        test_1     haha1.txt
3       2        test_3     kk.txt
4       2        test_3     kk1.txt
5       3        test_3     pp.txt



결과가..

num    bbs_no    CONTENT     fie_no,     file_no2
------------------------------------------------
1        test_1        나는            haha.txt    haha1.txt
1        test_2        너는   
2        test_3        우리            kk.txt        kk1.txt
3        test_3        바보            pp.txt
.
.
위와 같이 나오려면 어떻게 쿼리를 사용해야 할까요?

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

Mssql에서 group_concat 이 없나 봤더니, cursor를 사용해서 구현해 둔게 있더군요.
날 SQL를 선호 하는지라...

seq의 경우 oracle은 rownum를 사용하면 되는데, 일단 테스트 한 환경이  mysql 입니다.
아마도 mssql에서도 변수 대입을 할수 있을것 같은데. 1식 순차적으로 커지게 seq를 셋팅 하시면 될것 같네요.

대략, outer join으로 뽑아서, 그테이블을 다시 펼쳐서, 다시 그룹핑 하는 겁니다.

select num, bbs_no, content, max(case seq%2 when 0 then file_no else '' end) file_no,
max(case seq%2 when 1 then file_no else '' end) file_no2
from (
select  @seq:=@seq+1 seq,a.num, a.bbs_no, content, file_no
from a left outer join  b on a.num=b.num and a.bbs_no=b.bbs_no
) as t1
group by num, bbs_no

결과는.
+------+--------+---------+----------+-----------+
| num  | bbs_no | content | file_no  | file_no2  |
+------+--------+---------+----------+-----------+
|    1 | test1  | I       | haha.txt | haha1.txt |
|    1 | test2  | YOU     | NULL     | NULL      |
|    2 | test3  | we      | kk1.xtt  | kk.txt    |
|    3 | test3  | fool    | NULL     | pp.txt    |
+------+--------+---------+----------+-----------+

p.s: 파일은 최대 두개만 존재 한다고 가정한 겁니다. ^^
lnx4u님이 2008-01-24 09:17에 작성한 댓글입니다.
이 댓글은 2008-01-24 09:18에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
3987여러행에 다른값을 update 날릴 수 있나요? [1]
무극
2008-01-22
3495
3986많은 데이타 삭제
하홍민
2008-01-22
2740
3985sp_makewebtask 사용시의 문제 도와주세요..
도라에몽
2008-01-21
2899
3983쿼리 좀 도와주세요. [1]
조인안되
2008-01-21
4230
3982테이블에서 컬럼을 합치려면?? [1]
어부바
2008-01-19
3358
3979관계형성된 테이블 삭제시 에러메세지 [1]
몰리
2008-01-18
3771
3978서버에서 현재 실행중인 쿼리를 뽑아내려면? [3]
김남배
2008-01-16
3240
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다