개발/Datebase
SQL 오류 노트: 오류 코드 1064
aihtnyc_h
2024. 10. 29. 20:51
728x90
반응형
SMALL
SQL 오류 노트: 오류 코드 1064
#### 문제 설명
SQL 오류 코드 1064는 문법 오류를 나타냅니다. 이는 SQL 쿼리의 구문이 잘못되었음을 의미합니다. 주어진 쿼리에서 `LEFT JOIN` 구문이 잘못되었습니다. `LEFT JOIN` 뒤에는 조인할 테이블을 명시해야 합니다.
#### 발생 상황
`SELECT * FROM tb_point p LEFT JOIN tb_point_history ph ON p.ID = ph.POINT_ID;`
위 쿼리에서 `LEFT JOIN` 구문 사용에 문제가 발생했습니다.
#### 확인 사항
- `LEFT JOIN` 뒤에 어떤 테이블을 조인할 것인지 명확히 명시해야 합니다.
- 조인이 필요 없는 경우, 조인을 사용하지 않는 것이 좋습니다.
#### 해결 방안
조인 없이 값을 삽입하는 쿼리는 다음과 같이 수정할 수 있습니다:
INSERT INTO tb_point_history
(POINT_ID, USE_POINT, TRANSACTION_ID, RETURN_VAL,
RESIDUAL_POINT, CREATED_AT, CHARGEBOX_ID, CHARGEPOINT_ID, CONNECTOR_ID)
VALUES (
#{pointId}, #{usePoint}, #{transactionId}, #{returnVal},
(SELECT p.`POINT`
FROM tb_point p
WHERE p.ID = #{pointId}
LIMIT 1),
CURRENT_TIMESTAMP,
#{chargeBoxId},
#{chargePointId},
#{connectorId});
- `LEFT JOIN`을 사용하지 않고, 서브쿼리를 통해 `tb_point`에서 필요한 값을 직접 조회하여 삽입합니다.
#### 주의사항
- 항상 쿼리 문법을 검토하고, 테이블과 열 이름이 올바르게 지정되었는지 확인하십시오.
- SQL 쿼리의 실행 계획을 이해하고, 필요 없는 조인 사용을 피하십시오.
728x90
반응형
LIST