Gro*_*roo 3 c# sql nhibernate hql inner-join
我试图获得两个不同设备的测量对,加入相同的时间戳.在SQL中,这可以按预期工作:
select
leftItem.Timestamp, leftItem.Value, rightItem.Value
from
DataTable leftItem
inner join DataTable rightItem
on leftItem.Timestamp = rightItem.Timestamp
where
leftItem.Device = 1 and rightItem.Device = 2
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试将其转换为HQL:
select
left, right
from
DataTable as left
inner join DataTable as right
on left.Timestamp = right.Timestamp
where
left.Device = 1 and right.Device = 2
Run Code Online (Sandbox Code Playgroud)
我得到了 NHibernate.Hql.Ast.ANTLR.SemanticException:
Path expected for join!
如何指定同一个表的"路径"?
在HQL中,只能在实体之间的关联上完成连接.如果你想要连接其他东西,唯一的可能是在where子句中进行连接:
select left, right
from
DataTable as left, DataTable as right
where
left.Timestamp = right.Timestamp
and left.Device = 1
and right.Device = 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3229 次 |
| 最近记录: |