使用LEFT JOIN更新不与UCanAccess一起使用

时间:2016-03-26 10:10:08

标签: java ms-access jdbc hsqldb ucanaccess

我正在尝试从NetBeans更新MS Access中的表行。但我收到了错误 -

net.ucanaccess.jdbc.UcanaccessSQLException:意外令牌:需要LEFT:SET

我已经在MS-Access中直接测试了查询,这是完美的。但是当我在NetBeans中使用相同的查询时,它会抛出错误。

  1. 两个表相互连接 - 类别和产品表。
  2. 类别ID(主键,AutoIncrement)将是产品表中的外键。
  3. 现在我想在Product表中更新产品的详细信息。
  4. 我的更新查询:

    ps_ins_new_prod = con.prepareStatement("UPDATE Inv_Category LEFT JOIN Inv_Product ON Inv_Category.Category_ID = Inv_Product.Category_ID SET Inv_Product.[Size] = ?, Inv_Product.Quantity = ?, Inv_Product.Item_No = ?, Inv_Product.Purchase_Price = ?, Inv_Product.Selling_Price = ?, Inv_Product.Category_ID = ? WHERE (((Inv_Product.Product_Name)=?) AND ((Inv_Product.Size)=?) AND ((Inv_Category.Category_Name)=?) AND ((Inv_Product.Quantity)=?) AND ((Inv_Product.Item_No)=?) AND ((Inv_Product.Purchase_Price)=?) AND ((Inv_Product.Selling_Price)=?) AND ((Inv_Product.Category_ID)=?))");
    

1 个答案:

答案 0 :(得分:1)

内部Ucanaccess针对HSQLDB数据库运行查询,该数据库在UPDATE中不支持LEFT OUTER JOINS。

使用MERGE命令查看this thread以获取讨论和可能的解决方法。