Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException_Mysql_Jsp_Jdbc - Fatal编程技术网

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

错误:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException,mysql,jsp,jdbc,Mysql,Jsp,Jdbc,我正在处理jsp代码,数据库连接有问题。我的数据库中有两个表,ANN和SEC,其中SEC\u ID是主键和SEC表中的自动递增,以及ANN表中的外键。我想在代码中使用此查询 (SELECT DATE, MESSAGE FROM ANN WHERE ANN.SEC_ID = SEC.SEC_ID;) 但是当我运行我的程序时,我有 此错误: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException 问题在于如何连接表

我正在处理jsp代码,数据库连接有问题。我的数据库中有两个表,
ANN
SEC
,其中
SEC\u ID
主键
SEC
表中的
自动递增
,以及
ANN
表中的
外键
。我想在代码中使用此查询

(SELECT 
   DATE, 
   MESSAGE 
FROM ANN 
WHERE ANN.SEC_ID = SEC.SEC_ID;) 
但是当我运行我的程序时,我有 此错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException

问题在于如何连接表。您可以使用以下选项:

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);
(为了提高性能和可读性,我使用了alias)

请记住,您还可以执行以下操作:

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中的行数*秒中的行数


这显然不是你想要的。如果每个表中有几千行,那么即使您从MySQL中也会得到
OutOfMemoryError
,问题在于分号“;”的位置 看看这个:

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

您尚未将ANN加入SEC
选择日期,来自ANN的消息,SEC,其中ANN.SEC_ID=SEC.SEC_ID
除了查询中括号的奇怪位置外,它要么不完整(您没有发布完整的代码),要么查询本身缺少的部分就是问题的原因)