itsource

지정된 서비스 ID 이전에 모든 데이터 선택

mycopycode 2023. 9. 19. 21:03
반응형

지정된 서비스 ID 이전에 모든 데이터 선택

좋은아침!

https://dbfiddle.uk/ ?rdbms= mariadb_10.5& fiddle=4e2bdf9aeca8b69d829770589c14807

설명:

  1. 표 "시간 간격"
  2. 내일부터 +2일, 시간 범위 14-18시 사이의 날짜 범위로 이 테이블을 채웁니다.
  3. 로트 3회 업데이트 후 "2"로 서비스 설정 (랜덤 아이디 선택)
  4. SELECT * FROM timeslots ORDER BY timeslot ASC

그리고 이것이 그 바이올린을 보여주는 결과입니다.하지만 이제는 특정 결과를 얻기 위해 sql 쿼리를 확장해야 하는데 어떻게 구현할 수 있을지 모르겠습니다.아마 당신은 뭔가 생각이 있을 겁니다.

첫 번째 단계:서비스가 = 0인 타임슬롯만 받고 싶습니다.

쉬운 일:

SELECT * FROM timeslots WHERE service = 0

결과의 일부:

2021-07-06 14:00:00 0
2021-07-06 15:00:00 0
2021-07-06 16:00:00 2 (not this value, because service is not 0)
2021-07-06 17:00:00 0

좋아요!

그러나 동일한 날에 서비스 2가 있는 타임슬롯이 존재하는 경우(2021-07-06 16:00:00의 결과와 같이) 2021-07-06 16:00 이후의 값만 필요합니다.이 예에서 결과는 다음과 같습니다.

2021-07-06 17:00:00

저는 당신이 제 문제를 이해하고 저를 도울 수 있기를 바랍니다!

당신은 찾고 있습니다.NOT EXISTS, 서비스 2 슬롯이 존재하지 않는 행을 해당 시간 이후의 동일한 날에 확인하려고 하기 때문입니다.

select *
from timeslots ts
where not exists
(
  select null
  from timeslots ts2
  where date(ts2.timeslot) = date(ts.timeslot)
  and time(ts2.timeslot) >= time(ts2.timeslot)
  and service = 2
)
order by timeslot;

데모: https://dbfiddle.uk/ ?rdbms= mariadb_10.5& fiddle=6cf862d80445fcda030e2be35adb4909

언급URL : https://stackoverflow.com/questions/68242821/select-all-data-before-a-specify-service-id

반응형