안녕하세요 선배님들 BETWEEN 관련해서 질문이 있습니다..! 0 2 1,835

by 김성진 [MySQL] BETWEEN 조건 mysql join [2022.02.22 22:57:39]


위도 경도1.PNG (70,772Bytes)

안녕하세요 현재 앱개발을 하고 있는 초보 개발자 입니다... 현재 검색기능을 하고있는데 궁금한 것이 있어서 올립니다.. 도움 주시면 감사하겠습니다

현재 테이블 안에 컬럼이

  선생님                         학생

user_age                    first_age, last_age

lesson_price                first_price, last_price

이렇게 학생, 선생님이 서로쓰는 컬럼이 다릅니다..

user_age, lesson_price는  선생님의  나이와 레슨 비용에 대한 컬럼이고

first_age, last_age  first_price, last_price  first , last  로 구분하여  학생이 선생님을 검색을 할 때 범위 계산을 위한 컬럼인데요

AND
        cc.lesson_price  BETWEEN ${first_price} AND ${last_price}
    AND 
        cc.user_age   BETWEEN ${first_age} AND ${last_age}

first_price 부터~ last_price 까지 포함하는 가격

first_age 부터~ last_age 까지 포함하는 나이 이런식으로 계산을 하였는데요

만약 반대로 선생님이 학생을 조회하려면 

user_age 와 lesson_price 로 검색을 해야하는데 어떤식으로 쿼리를 짜면 좋을까요? 오늘 생각을 해보았는데 도통 떠오르지 않아서 .. 질문 올립니다.. 도와주시면 감사하겠습니다..

 

학생이 선생님 조회하는 쿼리입니다.. 도와주시면 감사하겠습니다!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<!--[CDATA[
SELECT
    cc.user_code
    ,cc.user_age
    ,cc.lesson_price
    ,cc.user_gender
    ,cc.demo_lesson
    ,cc.face_lesson
    ,cc.full_lesson
    ,cc.univers_name           
    ,aa.user_nick                              
    ,aa.user_photo
    ,aa.mylocation
    ,aa.user_delete
    ,bb.subject
    ,bb.study_level
    ,bb.school_year                            
    ,bb.study_prepar
    ,(6371*acos(cos(RADIANS(${latitude}))*cos(radians(latitude))*cos(radians(longitude)
    -RADIANS(${longitude}))+sin(RADIANS(${latitude}))*sin(radians(latitude))))
    AS distance
FROM
    stucondition AS cc
LEFT OUTER JOIN
    subjects AS bb
ON
    cc.subject_code = bb.subject_code
JOIN
    user AS aa
ON
   aa.user_code = cc.user_code
WHERE
    bb.subject = #{subject}
AND
    bb.school_year = #{school_year}
AND
    bb.study_prepar = #{study_prepar}
AND
    cc.univers_name = #{univers_name}
AND
    cc.user_gender = #{user_gender}
AND
    cc.lesson_price  BETWEEN ${first_price} AND ${last_price}
AND
    cc.user_age   BETWEEN ${first_age} AND ${last_age}
AND
    cc.demo_lesson = #{demo_lesson}
AND
    cc.face_lesson = #{face_lesson}
AND
    cc.full_lesson = #{full_lesson}
AND
    aa.user_delete = #{user_delete}
HAVING distance <= 5
]]-->

 

by 마농 [2022.02.23 09:19:11]
1
2
3
-- 똑같이 하시면 됩니다.
   AND ${lesson_price} BETWEEN first_price AND last_price
   AND ${user_age}     BETWEEN first_age   AND last_age

 


by 김성진 [2022.02.25 16:22:19]

감사합니다! 참고가 되어서 덕분에 해결 하였습니다!

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