我想编写一个 HQL 查询,从不同列的 4 个表中返回特定计数。
我有4张桌子:Tab1
, Tab2
, Tab3
and Tab4
,我想得到这样的东西:
|Tab1 | Tab2 | Tab3 | Tab4 |
|..1....|..13...|...7...|....0...|
所有记录在Tab#
有自己的id
and ObjectID
and ObjectFetch
columns
我尝试过这样的事情:
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
但它根本不起作用,知道为什么吗?
我找到了一个解决方案,根本不需要使用之后的所有表FROM
我们只能使用1,这只是为了正确的语法,我们也可以使用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
一切都好:) 谢谢。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)