左外的联接意外行为:行比左表
更多>关于左外联接的常见误解是结果集将始终具有比左表的行相同或更少的行。 但是,这并不总是正确的。 在特定条件下,行的数量可以超过左表的行计数。
>在查询中使用“ suss.susp_visits”(左表)和“ data.dim_member”(右表)之间观察到了此问题。连接结果的行比“ sussp_visits”中的4935行。
>理解左外联合
>左外联接功能如下:
为什么出现多余的行
额外的行不是通过复制左表行创建的,而是通过右表的结构来创建。 右表(“ data.dim_member”)中多个行时出现的问题是出现的。 例如,如果“ sussp_visits”中的“ memid”对应于“ data.dim_member”中的多个“成员”值,则联接将为该左表行产生多个输出行,从而增加整个行计数。 solutions
避免在左外联机中的这一行充气:
限制选择:
从左表中仅选择列。 这可以保证输出行计数不会超过左表的行计数。
以上是为什么我的 LEFT OUTER JOIN 返回的行数多于左表中存在的行数?的详细内容。更多信息请关注PHP中文网其他相关文章!