Join应该可以解决n +
1问题。如果您有10个父母,每个父母有10个孩子,则join将需要一个查询,而select则需要11个查询(一个对于父母,每个父母的孩子)。如果数据库与应用程序位于同一服务器上,或者网络速度非常快,那么这可能没什么大不了的,但是如果每个数据库调用中都存在延迟,则可以累加。对于初始查询,join方法的效率稍差一些,因为您要复制每一行中的父列,但是您只能往返数据库一次。
通常,如果我知道我需要所有父母的孩子,我会加入。如果我只需要几个父母的孩子,则可以使用select。

Join应该可以解决n +
1问题。如果您有10个父母,每个父母有10个孩子,则join将需要一个查询,而select则需要11个查询(一个对于父母,每个父母的孩子)。如果数据库与应用程序位于同一服务器上,或者网络速度非常快,那么这可能没什么大不了的,但是如果每个数据库调用中都存在延迟,则可以累加。对于初始查询,join方法的效率稍差一些,因为您要复制每一行中的父列,但是您只能往返数据库一次。
通常,如果我知道我需要所有父母的孩子,我会加入。如果我只需要几个父母的孩子,则可以使用select。