【发布时间】:2019-08-22 10:23:24
【问题描述】:
我有这 2 个表:inventory 和 product_categories 两个表都有一个名为 businessId 的公共列。
现在我有 2 个数据库,一个托管在 MySQL 上,另一个托管在 Derby 上,这两个数据库具有相同的表结构。
所以我一直在两个数据库上执行以下查询:
SELECT *
FROM INVENTORY
INNER JOIN PRODUCT_CATEGORIES
ON INVENTORY.BUSINESSID = PRODUCT_CATEGORIES.BUSINESSID
AND INVENTORY.CATEGORY = PRODUCT_CATEGORIES.CATEGORYNAME
WHERE INVENTORY.BUSINESSID = 1
当我使用下面的 Java 代码执行上面的查询时,我在两个数据库中都获得了成功的 ResultSet,但是当我尝试从 product_categories 表中获取 businessId 列时,Derby 抛出异常
try(Connection conn = dbConfig.getDatabaseConnection())
{
PreparedStatement pst = conn.prepareStatement(sql);
pst.setInt(1, businessId);
List<Product> products = new ArrayList<>();
ResultSet rs = pst.executeQuery();
while(rs.next())
{
...
int businessId = rs.getInt("product_categories.businessId"); //<-- This lines throws an exception
...
}
}
我收到此错误消息:
java.sql.SQLException:未找到列“product_categories.businessId”
请问这里出了什么问题?
【问题讨论】:
-
只是:
int businessId = rs.getInt("businessId")
标签: java mysql sql inner-join derby