我尝试使用多个表(基本上是 2 个表)在 SAP HANA 中创建 View ,其中 rollNo
是两个表中的主键列,但出现以下错误:
Error: (dberror) 268 - column ambiguously defined: ROLLNO: line 1 col 7 (at pos 7)
我尝试使用 SQL 中的 JOINS 概念创建此 View 。 以下是DAO类中的方法:
public Response CreatingMultiTableViews()
{
try
{
session=sessionFactory.openSession();
tx=session.beginTransaction();
SQLQuery query=session.createSQLQuery(" create VIEW ABCD As Select rollNo,name,english From ClassOne JOIN ClassTwo ON ClassOne.rollNo= ClassTwo.rollNo");
query.executeUpdate();
response.setStatus("200");
response.setMessage("successfull");
tx.commit();
return response;
}
catch(Exception e)
{
System.out.println(e.getMessage());
response.setStatus("500");
response.setMessage("unsuccessfull");
tx.rollback();
return response;
}
finally
{
session.close();
}
}
这是 Controller 类中的方法调用。 它将调用负责执行连接并创建相应 View 的方法。
@RequestMapping(value="/multiView",method=RequestMethod.GET,produces="application/json",consumes="application/json")
public Response CreatingMultiTableViews()
{
return service.CreatingMultiTableViews();
}
该方法预计会在 rollNo
列上连接两个表,但它显示上述错误,列 rollNo
是我的两个表的主键m 应用连接操作。
最佳答案
在 SQL 中使用表别名,并使用它们来表示您想要在 SELECT 中使用哪一列 rollNo
create VIEW ABCD As
Select c1.rollNo, name, english
From ClassOne c1
JOIN ClassTwo c2 ON c1.rollNo = c2.rollNo
关于java - 错误: (dberror) 268 - column ambiguously defined: ROLLNO: line 1 col 7 (at pos 7),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55831206/