QUERY 시 order by 관련 질문 입니다.

QUERY 시 order by 관련 질문 입니다.

QA

QUERY 시 order by 관련 질문 입니다.

본문

룸 정렬을 만들어 보고 있습니다.

 

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

지난번 질문에도 비슷한 질문을 가져오셨던것 같네요

 

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

 

와 같이하면 원하는 형태로 나옵니다

답변감사드립니다.

이렇게 해 보니 룸은 잘 정렬되는데 순번이 꼬이네요 예를들어

룸끼리는 잘 붙고요

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

이렇게 해 보았는데 숫자는 제대로 정렬되어서 나오는데 룸이 뒤에 입력한게 떨어져서 몇개 나와버리네요 이유를 모르겠네요... 흠...

A, C, D 전부 규칙성이 없네요.

단순히 ROOM만 같은 것끼리 묶으시려면 ORDER BY B만 하셔도 되지 않나요?

혹 다른 조건이 있나요?

네 번호가 우선입니다. 그런데 조건이 룸 우선하면 룸 오름으로 되고 순서가 바뀌어 버려서 고민이었습니다.
우선 번호가 우선이고 번호에 따른 룸이 붙고 다음 번호 룸 정렬하고 순입니다.

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

회원로그인

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