我需要以下列格式执行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子句中显然不支持子查询。有没有其他方法可以获得相同的结果?
答案 0 :(得分:0)
select a, b from TableA a right join a.bref b with a.flag = 1
重点是使用定义外连接额外条件的with
子句。
答案 1 :(得分:-1)
您可以在HQL上使用完整的选择条款,由于FROM ( FROM
,您提供的语法无效,只需将其更改为FROM ( SELECT * FROM
即可使用