左外的聯接意外行為:行比左表
更多>關於左外聯接的常見誤解是結果集將始終具有比左表的行相同或更少的行。 但是,這並不總是正確的。 在特定條件下,行的數量可以超過左表的行計數。
>在查詢中使用「 suss.susp_visits」(左表)和「 data.dim_member」(右表)之間觀察到了這個問題。連接結果的行比「 sussp_visits」中的4935行。
>理解左外聯合
>左外聯接功能如下:
為什麼會出現多餘的行
額外的行不是透過複製左表行建立的,而是透過右表的結構來建立。 右表(“ data.dim_member”)中多個行時出現的問題是出現的。 例如,如果「 sussp_visits」中的「 memid」對應於「 data.dim_member」中的多個「成員」值,則聯接將為該左表行產生多個輸出行,從而增加整個行計數。 solutions
避免在左外連線中的這一行充氣:
限制選擇:
從左表僅選擇欄位。 這可以保證輸出行計數不會超過左表的行計數。
以上是為什麼我的 LEFT OUTER JOIN 傳回的行數多於左表中存在的行數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!