错误:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException

时间:2014-07-24 08:19:42

标签: mysql jsp jdbc

我正在处理jsp代码并且我的数据库连接有问题。我的数据库中有两个表ANNSEC SEC_ID primary keyauto incrementSECforeign keyANN表中。我想在我的代码中使用此查询

(SELECT 
   DATE, 
   MESSAGE 
FROM ANN 
WHERE ANN.SEC_ID = SEC.SEC_ID;) 

但是当我运行我的程序时,我已经得到了 这个错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException

2 个答案:

答案 0 :(得分:1)

问题在于加入表格。您可以使用以下内容:

SELECT 
   A.DATE, # Assuming both DATE and MESSAGE are in ANN table 
   A.MESSAGE 
FROM 
   ANN AS A
   JOIN SEC AS S ON (A.SEC_ID = S.SEC_ID);

(我已经使用别名来提高性能和可读性)

记住你也可以这样做:

SELECT 
   A.DATE, # Assuming both DATE and MESSAGE are in ANN table 
   A.MESSAGE 
FROM 
   ANN AS A, SEC AS S 
WHERE A.SEC_ID = S.SEC_ID;

但这是记忆力不足。从数据库检索的行数为:

ANN中的行数* SEC中的行数

这显然不是你想要的。如果每个表中有几千行,那么即使你从MySQL获得OutOfMemoryError

答案 1 :(得分:0)

问题在于分号的放置';' 请看看这个:

(SELECT 
   DATE, 
   MESSAGE 
FROM ANN 
WHERE ANN.SEC_ID = SEC.SEC_ID) ;