테스트 사이트 - 개발 중인 베타 버전입니다

그룹 목록 뽑아서 정렬하기

· 13년 전 · 1072 · 1
도저히 혼자서는 해결이 안돼서 다시 질문 드립니다.
이렇게 했습니다.

$sql = " SELECT a.gr_id, a.gr_subject, b.mb_id FROM $g4[group_table] AS a LEFT JOIN $g4[group_member_table] AS b ON a.gr_id = b.gr_id WHERE (a.gr_use_access = '1') group by a.gr_id ORDER BY b.mb_id = '$member[mb_id]' desc, a.gr_id desc";

의도하는 바는... 그룹목록을 뽑아서 이렇게 나열하려고 합니다.
- 그룹접근을 사용하는 그룹이름만 뽑습니다. WHERE (a.gr_use_access = '1')
- 중복나열을 막기 위해 group by a.gr_id
- 자신이 그룹접근 해당 회원이라면 그 그룹을 우선 정렬 ORDER BY b.mb_id = '$member[mb_id]' desc

그런데 당연한 것이겠지만 마지막 우선정렬 조건에 문제가 있습니다. 자신이 해당되는 그룹만 우선정렬되는 것이 아니라 group_member_table에 아무 회원이든 포함되어 있는 그룹은 무조건 우선정렬됩니다. 해당회원이 속한 그룹이 아니더라도 말이죠.

어떻게 해야 제대로 나올까요.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 1개

13년 전
또 자문자답이네요.^^
정렬에 조건을 걸어서 해결했습니다. 이렇게...

if(b.mb_id = '$member[mb_id]',0,1)

게시글 목록

번호 제목
284348
284336
284333
284332
284320
284318
284316
284313
284307
284306
284303
284298
284296
284290
284286
284280
284277
284272
284261
284259