개발/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