内连接,外连接,交叉连接,迫切左外连接和迫切内连接

我看到有内连接,外连接,交叉连接。大体也明白了是怎么一会事。还看到有迫切左外连接和迫切内连接,请问这两个都是什么含义?是SQL标准里的吗?还是只是Hibernate里才有这两个东西?

另外,如果我在oracle9i中执行以下的语句:select stu.*,gra.* from Student stu,Grade gra where stu.id=gra.stu_id
不写连接方式,默认会按cross join连接吗?等价与 select stu.*,gra.* from Student stu cross join Grade gra where stu.id=gra.stu_id ?

 

=============================================================

 

》select stu.*,gra.* from Student stu,Grade gra where stu.id=gra.stu_id
默认是inner join

>迫切左外连接和迫切内连接
我熟愁oracle,sqlserver. 但未见到有这2个术语。因此这个东东可能是hiberate里面的

 

=============================================================

 

SQL左外连接
在结果表中包含第一个表中满足的所有纪录,如果是在连接条件上匹配纪录,则第二个表返回相应的值,否则第二个表返回空值。
如:
select hx.name,hx.age,hxhome.home from hx left join hxhome on hx.id=hxhome.hxid

SQL右外连接
在结果表中包含第二个表中满足的所有纪录,如果是在连接条件上匹配纪录,则第一个表返回相应的值,否则第一个表返回空值。
如:
select hx.name,hx.age,hxhome.home from hx right outer join hxhome on hx.id=hxhome.hxid

迫切左外连接
以下两种检索方式是等价的,它们都能同时迫切左外连接类B和类C:
//HQL迫切左外连接检索方式
from A a left join fetch a.b b left join fetch a.c c where b is not
null and c is not null

//QBC迫切左外连接检索方式
List result
=session.createCriteria(A.class)
.setFetchMode("this.b",FetchMode.EAGER)
.setFetchMode("this.c",FetchMode.EAGER)
.
add(Expression.isNotNull("this.b"))
.
add(Expression.isNotNull("this.c"))
.list();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值