2013-08-01 81 views
0

下面的SQL语句在mySQL Workbench中有效,但是当我在Eclipse中执行它时,会出现mySQL怀疑错误。 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'by schedule.id' at line 1SQL语句适用于Workbench,但不适用于Java

String sqlStr = "select movie_db.movie , schedule.date , schedule.timeslot " 
         + ", schedule.seats as NoSeats," 
         + " a.bookingsMade, if ((schedule.seats-a.bookingsMade) is null, schedule.seats,(schedule.seats-a.bookingsMade)) as availSeats" 
         + " ,schedule.movie_id, schedule.id as scID" 
         + " from schedule" 
         + " left outer join movie_db on (movie_db.id=schedule.movie_id)" 
         + " left outer join (" 
         + " select count(*) as bookingsMade, tickets.movie_id as aid from tickets" 
         + " group by schedule_id" 
         + ") as a on (schedule.id=a.aid)" 
         + " where schedule.movie_id=?" 
         + "group by schedule.id"; 

PreparedStatement pstmt = sqlConnect.getPreparedStatement(sqlStr); 
pstmt.setInt(1, Integer.parseInt(movieId)); 

ResultSet rs = pstmt.executeQuery(); 

回答

2

不能正常工作:

where schedule.movie_id=?" 
         + "group by schedule.id"; 

改变它

where schedule.movie_id=?" 
        + " group by schedule.id"; 
+0

OMG感谢,该'space'是一种致命的事情。一旦我能够接受你的答案。 – iridescent

+0

我建议你将这些SQL保存在单独的文件中。它的可读性更好...... –

相关问题