问题描述
实体类A有id,name,age,class,grade四个属性实体类B有id,name,age,class,point四个属性如何通过hsql语句使得name相同、age相同、class相同的point = grade例如: A有两个实体为: id1,name1,age1,class1,grade1 id2,name2,age2,class2,grade2 B有三个实体为: id3,name1,age1,class1,point1 id4,name2,age2,class2,point2 id5,name2,age2,class2,point3执行hsql语句后,B的记录变为: id3,name1,age1,class1,grade1 id4,name2,age2,class2,grade2 id5,name2,age2,class2,grade2这条hsql语句该怎么写呀?
解决方案
建议处理方法:B和A(注意是B和A,不是A和B)按照name、age和class进行左连接得到C(B.*,A.grade),然后用C表的数据(where grade is not null)更新B表。当然你说的是hsql,不过也可以在hibernate里面执行纯sql的。
解决方案二:
UPDATE B SET columnA=A.columnA FROM B left join A ON B.id=A.id AND B.name=A.name AND B.columnA<>A.columnA;根据这个格式改改吧。
时间: 2024-08-03 09:55:55