/* 1. JOIN ON()에 조건문을 넣은 경우 --> MYBATIS에서 안먹을 때 있음 */
SELECT B.SETUP_BAL
FROM TPT A
INNER JOIN TPT_SETUP B ON (B.TPT_NO = A.TPT_NO AND A.CODE = '01')
/* 2. WHERE에 조건문을 넣은 경우 ----> 정상 */
SELECT A.USER_NO
FROM TPT A
INNER JOIN TPT_SETUP B ON (B.TPT_NO = A.TPT_NO)
WHERE A.CODE = '01'
- 1번처럼 B로 설정한 테이블 JOIN ON()에 A에 관련된 조건을 넣으면 MYBATIS에서 적용 안되는 현상 확인.
- DBEAVER 툴에서는 정상 작동함 확인.
- 2번처럼 WHERE 조건문에 넣어주면 조회됐음.
정확히 join on으로 인한 조회 결과가 뭔지는 모르겠으나
dbeaver 툴(mysql)에서 아래와 같은 전체 쿼리를 실행했을 때는 정상 조회됨.
스프링 부트에서 마이바티스로 쿼리 조회 결과는 0개.
/*MYBATIS에서 문제 있었던 전체 쿼리(대충 비슷한 형태로 보여줬고 실제로는 정렬해서 동적쿼리 포함 300줄정도 )*/
SELECT A.*,B.*
FROM USER A
INNER JOIN USER_AUTH B ON ( B.USER_NO = A.USER_NO)
INNER JOIN USER_.... C ON ( C.USER_NO = A.USER_NO)
INNER JOIN ....
WHERE 1=1
AND EXISTS (SELECT 1
FROM USER_GOODS SS1
WHERE SS1.USER_GOODS_NO = A.USER_GOODS_NO)
<if test = "type = 'typeA'">
AND 'N' = (SELECT B.SETUP_VALUE
FROM TPT A
INNER JOIN TPT_SETUP B ON (B.TPT_NO = A.TPT_NO AND A.CODE = '01'))
</if>
<if>
</if>
.
.
.
.
'programming study > D-MySql' 카테고리의 다른 글
mysql 접속 오류(Public Key Retrieval is not allowed) (0) | 2022.12.20 |
---|---|
윈도우에서 MySQL Workbench 연결 오류 (0) | 2022.11.17 |
20220726_mysql_charset, collation (0) | 2022.07.26 |
20220711_mysql_with (0) | 2022.07.11 |
20220628-[MySQL]count(case when '컬럼명'=1 and exists (select문) then 1 end) as '별칭' (0) | 2022.06.28 |