C# Nhibernate简单自连接
我有一个包含以下字段的表:C# Nhibernate简单自连接,c#,hibernate,nhibernate,hql,criteria,C#,Hibernate,Nhibernate,Hql,Criteria,我有一个包含以下字段的表: ID (Primary key) Name Some more data fields 我想写一个查询,给定一个名称,它将给我所有ID大于该名称的行的行 (是的,我知道名称不是唯一的…在系统中是唯一的。) 我想要像这样的东西: select * From SomeTable as x WHERE x.ID> (Select ID from SomeTable as y where y.Name LIKE :param) 或: 当然,我想要的是自联接,而不是
ID (Primary key)
Name
Some more data fields
我想写一个查询,给定一个名称,它将给我所有ID大于该名称的行的行
(是的,我知道名称不是唯一的…在系统中是唯一的。)
我想要像这样的东西:
select *
From SomeTable as x
WHERE x.ID> (Select ID from SomeTable as y where y.Name LIKE :param)
或:
当然,我想要的是自联接,而不是子查询
顺便说一句。
标准也一样…在HQL中加入后,您将无法做到这一点 但是这个HQL查询是可以的:
select f from Foo f where f.id > (select f2.id from Foo f2 where f2.name = :name)
如果subselect可能返回多个id,那么也可以使用
select f from Foo f where f.id > all (select f2.id from Foo f2 where f2.name = :name)
使用HQL中的联接将无法完成此操作 但是这个HQL查询是可以的:
select f from Foo f where f.id > (select f2.id from Foo f2 where f2.name = :name)
如果subselect可能返回多个id,那么也可以使用
select f from Foo f where f.id > all (select f2.id from Foo f2 where f2.name = :name)
在HQL中使用SubSelect不会导致在SQL中使用SubSelect吗?这会使它运行得慢很多?为什么子选择必然会导致查询速度慢很多?尝试执行它,在没有子选择的情况下对查询进行度量,检查解释计划并微调索引。在HQL中使用子选择不会导致SQL中的子选择吗?这会使它运行得慢很多?为什么子选择必然会导致查询速度慢很多?尝试执行它,在没有子选择的情况下对查询进行度量,检查解释计划并微调索引。