룸 정렬을 만들어 보고 있습니다.
MYSQL (MARIADB) 1개의 TABLE : room
| field A | field B | field C | field D |
| 1 | ROOM2 | 1000 | |
| 2 | ROOM4 | 2000 | |
| 3 | ROOM1 | 1000 | |
| 4 | ROOM5 | 2000 | |
| 5 | ROOM4 | 1000 | |
| 6 | ROOM1 | 1000 | |
| 7 | ROOM1 | 2000 | TEST |
| 8 | ROOM4 | 500 | |
| 9 | ROOM1 | 3000 |
위와 같이 되어 있다면
A B C D
1 ROOM2 1000
2 ROOM4 2000
5 ROOM4 1000
8 ROOM4 500
3 ROOM1 1000
6 ROOM1 1000
7 ROOM1 2000 TEST
4 ROOM5 2000
위처럼 한개 테이블 안에서 번호 순서대로 룸과 번호를 묶어서 출력하고 싶습니다.
형식으로 정렬을 해서 출력하고 싶습니다.
답변부탁드립니다.
답변 2개 / 댓글 3개
지난번 질문에도 비슷한 질문을 가져오셨던것 같네요
https://sir.kr/qa/246227?stx=order+by&sst=wr_num&page=2&unanswered=0&s_tag=
조금은 다르지만
이번엔
select x.*
from room x,
(select y.a as sort1, y.* from room y
group by y.b order by y.a) y
where x.b = y.b
order by y.sort1,x.a
와 같이하면 원하는 형태로 나옵니다
답변에 대한 댓글 2개
위에 예제대로 답을드린것이구요
룸그루핑에 룸정렬이면
그냥쉽게 구현됩니다.
룸정렬은
order by x.b 로만 하셔도 됩니다.
A, C, D 전부 규칙성이 없네요.
단순히 ROOM만 같은 것끼리 묶으시려면 ORDER BY B만 하셔도 되지 않나요?
혹 다른 조건이 있나요?
답변에 대한 댓글 1개
우선 번호가 우선이고 번호에 따른 룸이 붙고 다음 번호 룸 정렬하고 순입니다.
답변을 작성하려면 로그인이 필요합니다.
이렇게 해 보니 룸은 잘 정렬되는데 순번이 꼬이네요 예를들어
룸끼리는 잘 붙고요
1 ROOM1
4 ROOM1
5 ROOM1
2 ROOM3
10 ROOM3
3 ROOM4
위처럼 번호가 우선된 룸에 다른 번호 같은 룸이 붙어야 합니다.
select x.*
from roomlist x,
(select y.ono as sort1, y.* from roomlist y
group by y.o_room order by y.ono) y
where x.o_room = y.o_room and (x.o_id='myid' and x.o_check='no')
order by x.ono,y.sort1
이렇게 해 보았는데 숫자는 제대로 정렬되어서 나오는데 룸이 뒤에 입력한게 떨어져서 몇개 나와버리네요 이유를 모르겠네요... 흠...