我有这2个表:两个表都有一个名为 的公共列。inventoryproduct_categoriesbusinessId
现在我有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代码执行上面的查询时,我在两个数据库中都取得了成功,但是当我尝试从表中获取列时,Derby会引发异常ResultSetbusinessIdproduct_categories
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.SQL 异常:未找到“product_categories.业务 Id”列
请问这里出了什么问题?
慕村9548890
千巷猫影
相关分类