【发布时间】:2015-10-22 19:34:48
【问题描述】:
我需要执行以下格式的 SQL 查询:
SELECT * FROM (SELECT * FROM TableA WHERE flag=1) AS a
RIGHT JOIN TableB AS b
ON a.refb = b
这个想法只是将 TableA 的子集与完整的 TableB 正确连接。这样,带有标志 != 0 的 TableA 行在最终结果中仅显示一次,且值为 NULL。
现在,我认为等效的 HQL 查询将类似于以下内容:
FROM (FROM TableA ta WHERE ta.flag = 1) AS a
RIGHT JOIN a.bref b
但显然 FROM 子句不支持子查询。有没有其他方法可以获得相同的结果?
【问题讨论】:
-
只是
FROM( SELECT * FROM ....)不会吗?您也可以在 hql 中使用全选语法 -
别无他法,只能将它们作为本机 SQL 查询执行。 JPA 和 Hibernate 目前不支持从派生表(子查询)查询