ODBC Access Driver 사용시에 Inner Join에 대한 "쿼리식의 연산자가 없는 구문 오류입니다." 오류

Access(.mdb)를 사용하기 위해서 ODBC로 등록해서 JDBC로 연결할 때 평소하던 것 처럼 쿼리문을 짰는데 오류가 떨어졌다. 쿼리상으로는 문제가 없는데 Access Driver가 해당 쿼리에 대해서 지원을 하지 않는 것으로 보였다.

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=?

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=?

만약 INNER JOIN이 하나 더 붙으면 괄호를 또 감싸주어야 한다.

하튼 왜 디비를 MDB를 쓴다고 결정해놔서 이 고생을... ㅡ..ㅡ
크리에이티브 커먼즈 라이센스
Creative Commons License
2008/12/13 16:29 2008/12/13 16:29

Trackback URL : http://blog.outsider.ne.kr/trackback/252

Leave a Reply

[로그인][오픈아이디란?]
  • Categories

    List (483)
    BlaBlaBla~ (87)
    JAVA (91)
    .NET (21)
    PHP (1)
    Database (21)
    Web Development (52)
    Publishing (24)
    Javascript (104)
    Ruby on Rails (11)
    RIA (10)
    Web 2.0 & Semantic (44)
    Ubuntu (3)
    Mobile (14)
  • Tag Cloud

  • Calendar

    «   2010/07   »
            1 2 3
    4 5 6 7 8 9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 31
  • Archives

  • SAVE THE
    DEVELOPERS <!>
    Upgrade IE 6 Now!
  • Recent Posts

  • Recent Comments

  • Recent Trackbacks

  • Recent My Delicious

  • Site Stats

    • Total hits: 658976
    • Today: 109
    • Yesterday: 1090
  • 1512

    1064

    0

    -30 days

    today : 109

    Powered by  MyPagerank.Net