我正在处理jsp代码并且我的数据库连接有问题。我的数据库中有两个表ANN
和SEC
SEC_ID
primary key
和auto increment
表SEC
和foreign key
在ANN
表中。我想在我的代码中使用此查询
(SELECT
DATE,
MESSAGE
FROM ANN
WHERE ANN.SEC_ID = SEC.SEC_ID;)
但是当我运行我的程序时,我已经得到了 这个错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException
答案 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) ;