有没有人有一个非常好的示例,其中有两个具有 OneToMany 关系的表,其中以表 B 作为目标进行左联接比使用 WHERE 子句以表 A 作为目标进行左联接有用。
Table A (ManyToOne with Table B)
Pk
Number
Fk
Table B
Pk
IsActive
我的意思是,我可以像这样写一个连接
select * from TableA as a left outer join TableB as b on b.pk=a.fk where b.isActive=false and a.Number < 15
而不是写
select * from TableB as b left outer join TableA as a on b.pk=a.fk where b.isActive=false and a.Number < 15
我的意思是,如果我在 noSQL 系统上支持连接,我什么时候需要支持第二个,因为有人不能把它重写为上面的第一个,并且有一个很好的用例,所以我可以总结一下大概什么时候用?
我问的原因是对象查询语言,我想知道在这种情况下是否需要支持执行 where 子句(或者如果我只是不允许这样的事情)......
select b from TableB as b left fetch join b.tableAList as a where b.isActive=true and a.xxxxx = something
但不是那么无效,因为 b 有很多 a 行,所以 a.xxxx 是无效的,因为它是一个列表,并且只能是 a.size ,这将是该 b 行的 a 行列表中的行数。
谢谢,院长