A테이블은 회원 테이블이고요
B테이블은 회원들이 글을 쓰는 테이블이라고 할때
A테이블은
name : 이름
tel :전화번호
sid :회원아이디
B테이블은
sid:회원 아이디
num :회원이 쓴글의 글넘버
rday : 글쓴날짜 시간
정도로 했을때
회원 정보를 리스트로 나열되게 하는 페이지 에서
회원정보가 다 나오고 거기에 추가로 가장 최근에 글쓴 글넘버 하나를 옆에 나오게 해야 하는데
결과물이
김개똥 000-000-0000 123
김개순 010-010-0101 3201
이런식으로 말이죠
select a.name b.num from a테이블 a left join b테이블 b on a.sid=b.sid
대략 이런 개념으로 짜게 되면 한회원이 여려개의 글을 올렸을때 그걸 다 추려내서
김개순 010-010-0101 3201
김개순 010-010-0101 3202
이런식으로 나열이 되는데 이걸 group 을 할수 있는지도 모르겠고. 어떻게 해야할지 힌트정도라도 알려주시면 감사하겠습니다.
회원정보 페이지다 보니 b테이블에 글이 없더라도 회원정보는 나와야 하고요..
Comment 2
-
정홍석
2013.04.03 09:15
-
블랙조
2013.04.03 09:44
첫번째로 group by 을 하여 max 값을 취하시면 될 듯 합니다.
SELECT a.name, MAX(a.tel) as tel, ISNULL(MAX(b.num), -1) as '최근글넘버'
FROM AAA a
LEFT JOIN BBB b ON (a.sid=b.sid)
GROUP BY a.name, a.sid두번째로 자식테이블 격인 B 테이블을 1쪽 집합으로 만들어 LEFT 조인을 합니다.
SELECT a.name, a.tel as tel, ISNULL(b.num, -1) as '최근글넘버'
FROM AAA a
LEFT JOIN (SELECT sid, MAX(num) as num FROM BBB GROUP BY sid) b ON (a.sid=b.sid)
이런 식으로 구현하시면 될 듯 합니다 : )