포인트로 정렬 시키고 싶습니다.

포인트로 정렬 시키고 싶습니다.

QA

포인트로 정렬 시키고 싶습니다.

본문

포인트로 정렬 시키고 싶습니다.

 

test 게시물 테이블

이라고 할때

 

select * from test as t, (select mb_point, mb_id from g5_member group by mb_id order by mb_point desc) as m

where m.mb_id = t.mb_id

group by t.mb_id

order by m.mb_point desc

 

이런식으로 정렬시키고 싶습니다.

 

테이블 두개를 참조하여 게시물 정렬을 시키는 요령 좀 알려주세요.

 

-- 궁극적으로 하고 싶은건 mb_id 별로 1개의 게시물만 보여주고 싶은데

그 정렬을 mb_point로 하고 싶습니다.

 

답변 기다리겠습니다.

 

감사합니다.

 

ps....  지금 질문하기 버튼이 너무 눈에 띄어서 2번이나 다쓰고 질문하기버튼을 눌렀네요.ㅠㅠ

ps.. 어떻게 리스트 함수에 넣어야 할지 막막합니다.

이 질문에 댓글 쓰기 :

답변 2

게시물의 특성상 groub by 자체가

제목이 동일할수 없기때문에 1개읠 Row를 특정지을수 없습니다.

 

단, 추출가능한 방법은

2개의 테이블에서 글쓴이중 포인트가 가장 높은 이 순으로 ID를 정렬시키는건 가능합니다.

그 이후에 2개의 테이블에서 아무글이나 추출된 id의 대상이 작성한 최신글로 추출하는 식으로 해야겠죠 (맨 마지막의 글쓴이가 최신글을 쓴것은 방식을 아실테니 생략하고)

 

앞의 2개의 테이블에서 포인트가 높은 순으로 ID를 1개씩 리스트업 하는것은

다음과 같습니다.

 


select x.mb_id from (
   select * from g5_write_test
   union all
   select * from g5_write_test2 
) x, g5_member y
where x.mb_id = y.mb_id
group by mb_id
order by y.mb_point desc

제가 두개의 테이블이라고 적은건 member 테이블과 정렬하고 싶은 테이블을 의미한것이였습니다.
플래토님 답변처럼 member테이블을 제외한 테이블2개가 아닙니다.

다시한번 설명 좀 부탁드립니다.

정리하면 특정테이블의 글을 글쓴이의 포인트로 정렬하고 싶습니다.

감사합니다.

쿼리로만 구성해드리면

select y.mb_point, y.mb_name, y.mb_id, x.*
from g5_write_table1 x
join g5_member y on (x.mb_id = y.mb_id)
where  x.wr_is_comment = 0
group by x.mb_id
order by mb_point desc


point 가 존재하는 사람만 리스트업되도록 조금 수정했습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 25
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT