개발
mysql (ibatis) | 오류 | jdbc.exceptions.MySQLIntegrityConstraintViolationException
AM0530
2020. 6. 30. 10:03
1. 오류 : jdbc.exceptions.MySQLIntegrityConstraintViolationException: Column '(컬럼명)' in where clause is ambiguous
2. 오류 원인 : join문에서 동일한 이름의 컬럼이 2개이상 있어서 발생
(예시 : 오류 코드)
1
2
3
4
5
6
|
SELECT C.NO
, C.B_DATE AS cb_date
, C.E_DATE
, B.B_DATE AS bb_date
FROM CTABLE C LEFT JOIN BTABLE B ON C.NO = B.NO
ORDER BY B_DATE ASC, E_DATE ASC
|
cs |
CTABLE에도 B_DATE 컬럼이 있고 BTABLE에도 B_DATE가 있는데
ORDER BY에서 B_DATE가 어느 테이블의 컬럼인지 명시하지 않았다.
(예시 : 수정한 코드)
1
2
3
4
5
6
|
SELECT C.NO
, C.B_DATE AS cb_date
, C.E_DATE
, B.B_DATE AS bb_date
FROM CTABLE C LEFT JOIN BTABLE B ON C.NO = B.NO
ORDER BY C.B_DATE ASC, C.E_DATE ASC
|
cs |
B_DATE가 어느 테이블의 컬럼인지 명시했다.
* sql문을 작성할때는 join하는 table 사이에 동일한 컬럼이 없더라도 추후 컬럼이 추가될 수 있기 때문에
join문에서는 어느 테이블의 컬럼인지 정확히 명시해두어야 오류를 방지할 수 있다.