도저히 혼자서는 해결이 안돼서 다시 질문 드립니다.
이렇게 했습니다.
$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에 아무 회원이든 포함되어 있는 그룹은 무조건 우선정렬됩니다. 해당회원이 속한 그룹이 아니더라도 말이죠.
어떻게 해야 제대로 나올까요.
이렇게 했습니다.
$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개
게시글 목록
| 번호 | 제목 |
|---|---|
| 284508 | |
| 284499 | |
| 284492 | |
| 284490 | |
| 284484 | |
| 284481 | |
| 284478 | |
| 284476 | |
| 284474 | |
| 284472 | |
| 284470 | |
| 284458 | |
| 284457 | |
| 284454 | |
| 284453 | |
| 284447 | |
| 284446 | |
| 284444 | |
| 284441 | |
| 284440 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기