」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 內部聯接是否覆蓋了外部連接的零值?

內部聯接是否覆蓋了外部連接的零值?

發佈於2025-03-13
瀏覽:448

[2

了解內部和外部連接在SQL Does an INNER JOIN Override an OUTER JOIN's Inclusion of NULL Values?
複雜的SQL查詢經常使用多個聯接操作,結合了不同的聯接類型。 一個關鍵的考慮因素是,當隨後應用內部連接時,null值的包含(外部連接的特徵)如何受到影響。

如何影響外部加入結果

的性質,僅在讓我們檢查一個方案:

選擇 * 來自人 左加入地址。 內部加入電子郵件person.email_id = email.id;

左JOIN 確保包括

表的所有行,即使在[

地址中沒有匹配條目。 但是, email

的內在加入然後將結果限制為僅在[ email

中,僅存在匹配的

persion email_id

。 從
SELECT *
FROM person
LEFT JOIN address ON person.address_id = address.id
INNER JOIN email ON person.email_id = email.id;
考慮此查詢:

選擇 * 來自人 左加入地址。 內部加入city在地址上的城市。 在這裡, city 假定 adderce.city_id )的內在連接很少。 如果某些地址缺乏,則將省略那些行(以及關聯的行),無意中更改初始正確的方法是使用另一個左JOIN 而不是 innion Inner 選擇 * 來自人 左加入地址。 左加入city on address.city_id = city.id; 這保留了初始的包含性,正確處理案例,其中可能為null。 這樣可以確保所有記錄都包括在內,而不管它們是否具有與之相關的地址或城市。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3