2

我想编写一个 HQL 查询,从不同列的 4 个表中返回特定计数。

我有 4 个表:Tab1、和Tab2,我想得到这样的东西:Tab3Tab4

|Tab1   | Tab2  | Tab3  | Tab4   |
|..1....|..13...|...7...|....0...|

s 中的所有记录Tab#都有自己的idandObjectIDObjectFetch

我尝试过这样的事情:

select DISTINCT
(select count(*) from Tab1 where ObjectFetch=:fetch and ObjectID=:id),
(select count(*) from Tab2 where ObjectFetch=:fetch and ObjectID=:id),
(select count(*) from Tab3 where ObjectFetch=:fetch and ObjectID=:id),
(select count(*) from Tab4 where ObjectFetch=:fetch and ObjectID=:id),
from Tab1, Tab2, Tab3, Tab4

但它根本不起作用,知道为什么吗?

4

1 回答 1

3

我找到了一个解决方案,只需使用1之后就不需要使用所有表FROM了,这只是为了正确的语法,我们也可以使用virtualTable,所以正确的HQL

select DISTINCT
(select count(*) from Tab1 where ObjectFetch=:fetch and ObjectID=:id),
(select count(*) from Tab2 where ObjectFetch=:fetch and ObjectID=:id),
(select count(*) from Tab3 where ObjectFetch=:fetch and ObjectID=:id),
(select count(*) from Tab4 where ObjectFetch=:fetch and ObjectID=:id)
from Tab1

一切正常:) thx。

于 2013-08-21T11:38:54.000 回答