与其考虑“基于连接类型的关系多重性”,您应该开始考虑基于如果没有对应关系时您想要发生的情况的连接类型。这是一个更有用的起点。
请参阅Jeff Atwood 的这篇文章。正如您在他的查询旁边的示例结果中看到的那样,inner joins减少结果数量并outer joins允许更多结果进行比较。这两种情况都有用。
一般来说inner joins,outer joins由于性能原因应该优先考虑,但是如果没有匹配,哪种连接类型的驱动力需要是你想要发生的。此外,根据我的经验,普遍偏爱left outer joinsover right outer joins。
与生活中的任何事情一样,都有警告和陷阱,但这是一个更好的起点。
另一个有用的可视化:SQL 连接很容易