java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 'b.categoryid=a.categoryid INNER JOIN role AS c ON b.roleid=c.roleid' 쿼리식의 연산자가 없는 구문 오류입니다.
아래와 같은 쿼리이다.
SELECT a.title, b.sid, b.points,
b.pattern, b.base, c.rolename
FROM itembank AS b
INNER JOIN category AS a
ON b.categoryid=a.categoryid
INNER JOIN role AS c
ON b.roleid=c.roleid
WHERE a.parent=?
FROM itembank AS b
INNER JOIN category AS a
ON b.categoryid=a.categoryid
INNER JOIN role AS c
ON b.roleid=c.roleid
WHERE a.parent=?
INNER JOIN이 1개만 있을때는 오류가 없는데 INNER JOIN을 2번하면 오류가 나오는데 ODBC 드라이버가 그런건지 몰라도 FROM절에서 INNER JOIN을 제대로 인식하지 못하는 것 같다. 그래서 다음과 같이 괄호로 묶어 주어야 한다.
SELECT a.title, b.sid, b.points,
b.pattern, b.base, c.rolename
FROM (itembank AS b
INNER JOIN category AS a
ON b.categoryid=a.categoryid)
INNER JOIN role AS c
ON b.roleid=c.roleid
WHERE a.parent=?
FROM (itembank AS b
INNER JOIN category AS a
ON b.categoryid=a.categoryid)
INNER JOIN role AS c
ON b.roleid=c.roleid
WHERE a.parent=?
만약 INNER JOIN이 하나 더 붙으면 괄호를 또 감싸주어야 한다.
하튼 왜 디비를 MDB를 쓴다고 결정해놔서 이 고생을... ㅡ..ㅡ
Comments