[2
了解內部和外部連接在SQL 複雜的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