假设我们执行了以下一组连接:
A - > B - > C - > d
这组连接在结果集中只产生一行。 现在,如果我们添加更多连接:
A -> B -> C -> D
|
E -> F -> G
现在B也加入了E。
所有联接都是内部联接。
我们能保证结果集总是有0行或1行吗?
答案 0 :(得分:0)
简单回答:否。如果有任何联接B - > E,E-> F,F-> G是一对多,那么您可以从查询中获得多行。
答案 1 :(得分:0)
是的,你可以。
如果要确保0或1行,则必须确保每个表都连接其主键或两侧都有唯一索引;你的WHERE子句也确保一个表返回0或1行。
成为唯一索引或主键非常重要,因为每个JOIN都可以确保多重性。具有唯一索引或主键确保(0,1)x(0,1)关系。