완두콩__
50
2021-12-09 09:34:44
4
262

[SQL] 초급 질문


<select id="test" parameterType="map" resultType="caseInsensitiveMap">

SELECT * 

FROM tb_book a, tb_pensil b

WHERE a.EMAIL= #{email}  

  AND a.PASSWORD= #{password}

  AND a.READ= 'Y'  

</select>


위 SQL문에서 TB_BOOK과 TB_PENSIL테이블에 EMAIL, PASSWORD 파라미터 값이 있고,

READ가 'Y' 인 것을 불러와라 라는 것을 어떻게 짜면 될까요?....

EMAIL과 PASSWORD, READ 컬럼은 두 테이블에 동일하게 들어가있으며,

두테이블의 EMAIL은 중복되지않습니다.


SQL문 초보라 JOIN문 써도 잘 안되네요... 

설명으로는 이해가 잘 안되더라구요... 죄송하지만 고수분들 코드로 부탁 드리겠습니다!! ㅠㅠㅠㅠ

0
  • 답변 4

  • 인성 절구로 빻음
    4k
    2021-12-09 09:50:21


    SELECT
        'BOOK' as tb,
        email,
        password,
        read
    FROM
        tb_book
    WHERE email = #{email}  
        AND PASSWORD= #{password}
        AND read = 'Y'
    union
    SELECT
        'pensil' as tb,
        email,
        password,
        read
    FROM
        tb_pensil
    WHERE email = #{email}  
        AND PASSWORD= #{password}
        AND read = 'Y'


  • 성능최적화계획
    855
    2021-12-09 09:56:11

    질의문이 정확하지 않네요.

    본인의 질문을 정리할 필요가 있어 보여요.

    예)

    1. TB_BOOK에는 EMAIL, PASSWORD, READ 정보가 존재한다.
    2. TB_PENSIL에는 EMAIL, PASSWORD, READ 정보가 존재한다.
    3. 두 테이블의 관계는 XX이다

    목표
    1. email, password 정보를 입력받아 TB_BOOK 또는 TB_PENSIL 에 매치되는 값을 출력한다.

  • 마린_7
    352
    2021-12-09 10:12:26

    SELECT * 

    FROM tb_book a, tb_pensil b

    WHERE a.EMAIL = b.EMAIL

                    AND a.PASSWORD= b.PASSWORD

                    AND a.READ = b.READ

                    AND a.EMAIL= #{email}  

      AND a.PASSWORD= #{password}

      AND a.READ= 'Y'  

  • 할만큼한것같다
    4
    2021-12-09 11:26:46

    두 테이블의 데이터 관계를 확인하고

    join을 어떻게 해야 원한는 데이터가 출력될지 생각해보신다음 작성해보세요

    join 종류도 많고 같은 방법이지만 다양하게 작성할수 있으니 먼저 공부해보세요

    SQL 작성에 정답은 없습니다. 

  • 로그인을 하시면 답변을 등록할 수 있습니다.