1 对多 Join 的结果集疑问

根据相互关联的订单表、订单明细表和订单回款表,查询哪些订单尚
未回款
当前的 ER 关系
imagepng

3 张表中的数据集
imagepng

计算的过程

imagepng

系统上帮助文件解释如下
join(Ai:Fi,xj,..;…)

备注:

将多个序列 Ai 按照关联字段 / 关联表达式 xj 和 x1 相等的关系连接,产生以 Fi,…为字段的序表,Fi 赋值为 Ai 对应成员,引用原排列 Ai 中的记录,xj 全省略时用 Ai 的主键。某个 xj 省略时该项条件不必匹配。

不管是多少个排列之间关联,都是和 A1 中的 x1 相等判断,因此是一表对多表的关系。

问题
在 1 对多的场景下
1.join 中的语法,xj 是否一定需要主键,才能获取到正确的结果集?
如果定义主键,但是实际上有重复。因为没有对数据库再次连接检查。那么主键重复之后,对后续的结果集有什么影响?

2.A5 中的 join,根据帮助文件的解释,后面 2 张表,都是对 A2 以外键 orderid 进行左连接。那么应该就只有 2 条记录?为什么有 4 条记录?

3. 因为 A5 的计算结果集不对,所以 A6,A7 的结果集都不对。那么正确的方法应该如何处理?