我正在尝试使用多个表(基本上是2个表)在SAP HANA中创建视图,其中rollNo
是两个表中的主键列,但出现以下错误:
错误:(dberror)268-列定义不明确:ROLLNO:第1行第7行(在pos 7)
我尝试使用SQL中的JOINS概念创建此视图。
以下是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();
}
}
这是控制器类中的方法调用。
它将调用负责执行联接和创建相应视图的方法。
@RequestMapping(value="/multiView",method=RequestMethod.GET,produces="application/json",consumes="application/json")
public Response CreatingMultiTableViews()
{
return service.CreatingMultiTableViews();
}
该方法应该连接
rollNo
列上的两个表,但是它显示上述错误,列rollNo
是我要对其应用联接操作的两个表的主键。 最佳答案
在SQL中使用表别名,并使用它们来表示您要在SELECT中选择哪一列rollNo
create VIEW ABCD As
Select c1.rollNo, name, english
From ClassOne c1
JOIN ClassTwo c2 ON c1.rollNo = c2.rollNo