테이블이랑 데이터는 잘 들어왔는데 기본키 인덱스 이런거 다 없다.

 

참고 동영상: https://www.youtube.com/watch?v=UdLRcsJ7-0s

UPDATE 테이블1 a

INNER JOIN 테이블2 b ON a.컬럼1= b.컬럼1

SET a.컬럼2=b.컬럼2

출처: http://stackoverflow.com/questions/871905/use-select-inside-an-update-query

오류내용

상식적인 선의 LEFT JOIN 문을 여러개 걸었더니 쿼리식 일부와 함께 "쿼리식의 연산자가 없는 구문 오류입니다." 에러메시지가 발생하였다. 해당 쿼리문은 일반적인 문법으로 봤을때 문제가 없었으며, LEFT JOIN을 하나만 했을때에는 정상적으로 실행이 된다.

 

>> LEFT JOIN 하나여서 문제가 발생하지 않는 쿼리문

SELECT *
FROM table1 a
LEFT JOIN table2 b ON (a.ID=b.ID)

 

>> LEFT JOIN을 여러개 걸었더니 "(a.ID=b.ID) LEFT JOIN table3 c ON (b.ID=c.ID) 쿼리식의 연산자가 없는 구문 오류입니다." 에러가 발생한 쿼리문

SELECT *
FROM table1 a
LEFT JOIN table2 b ON (a.ID=b.ID)
LEFT JOIN table3 c ON (b.ID=c.ID)

 

 

해결

일단 감싸니까 됐다. 

SELECT *
FROM (
    SELECT *
    FROM table1 a
    LEFT JOIN table2 b ON (a.ID=b.ID)
) a
LEFT JOIN table3 c ON (a.ID=c.ID)

 

+ Recent posts