select
*
from
t1 left join t2
on
(t1.a = t2.a and t1.b=t2.b)
或
select
*
from
t1 left join t2
on
t1.a = t2.a and t1.b=t2.b
[without parenthes]
t1与a列上的t2有一对多的关系(所以有一个" set"从t1到t2的映射)
t1与b列上的t2有多对多的关系(到目前为止没有映射)
case 1 :
b in t1 null, b in t2 null
case 2 :
b in t1 not null, b in t2 not null
case 3 :
b in t1 not null, b in t2 null
case 4 :
b in t1 null, b in t2 not null
如何在HQL中编写上述SQL查询?
我用"检查了" HQL中的子句。但是它期望右侧的常量,而不是表中的列。
为了与HQL中的另一个表连接,您需要映射到该表。
我的问题是什么是在HQL中实现上述SQL的简洁方法或唯一方法?
我是否必须为t1到t2中的每一列创建单独的映射,并分别与这些映射连接(即t2连接两次col a once和col b一次)?
另外,我想知道以上所有情况是否都是上面左连接查询的有效情况。(比如说两个表中的col b为空,可以用" null"值连接2个表?)