최근 대화 유저 가져오기 쿼리 질문 0 2 396

by _ [SQL Query] 쿼리 대화 유저 [2022.01.04 16:59:58]


+-----------+---------------+------+-----+---------+-------+
| Field     | Type          | Null | Key | Default | Extra |
+-----------+---------------+------+-----+---------+-------+
| sender    | varchar(6)    | YES  |     | NULL    |       |
| recipient | varchar(6)    | YES  |     | NULL    |       |
| msg       | varchar(6000) | YES  |     | NULL    |       |
| date      | timestamp     | YES  |     | NULL    |       |
| state     | tinyint(1)    | YES  |     | NULL    |       |
+-----------+---------------+------+-----+---------+-------+

위 테이블에 아래 데이터가 있습니다

+--------+-----------+----------+---------------------+-------+
| sender | recipient | msg      | date                | state |
+--------+-----------+----------+---------------------+-------+
| 222222 | 111111    | test6    | 2022-01-05 06:00:00 |     0 |
| 222222 | 111111    | test5    | 2022-01-05 06:00:00 |     0 |
| 111111 | 222222    | 222222-2 | 2022-01-05 02:00:00 |     0 |
| 111111 | 222222    | 222222-1 | 2022-01-05 01:00:00 |     0 |
| 111111 | 123456    | test3    | 2022-01-04 03:00:00 |     0 |
| 111111 | 123456    | test2    | 2022-01-04 02:00:00 |     0 |
| 111111 | 123456    | test1    | 2022-01-04 01:00:00 |     0 |
+--------+-----------+----------+---------------------+-------+

 

최근에 대화한 유저(receive)를 가져오는 쿼리를 작성중인데 

"select sender,recipient from message where state = 0 and (sender='111111' or recipient='111111') group by sender, recipient;" 이런 쿼리를 실행하니 

+--------+-----------+
| sender | recipient |
+--------+-----------+
| 111111 | 123456    |
| 111111 | 222222    |
| 222222 | 111111    |
+--------+-----------+

이렇게 2번째 행과 3번째 행 처럼 서로 바뀌어서 나오는 것을 없애고 싶습니다

by 마농 [2022.01.04 17:31:05]
SELECT DISTINCT
       LEAST   (sender, recipient) s
     , GREATEST(sender, recipient) r
  FROM message
 WHERE state = 0
   AND '111111' IN (sender, recipient)
;

 


by _ [2022.01.04 17:39:38]

해결해주셔서 감사합니다

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입