最近一段時間找工作,對以往的知識進行了複習,以下是本人對資料庫中表連線的總結:
連線:連線是指將關聯式資料庫中的兩個表根據內容一定的條件連線成乙個表
連線型別:內連線與外連線
a、內連線:又稱等值連線,如
select a.*,b.* from tablea a,tableb b where a.id = b.id;
也可以:
select a.*,b.* from tablea a inner join tableb b on a.id = b.id;
b、外連線(左外連線、右外連線、迫切左連線)
左外連線:以左表為基礎來連線,如果左表的某行內容無法在右表中找到相對的row,則將右表統統用null來表示
select a.*,b.* from tablea a left join tableb b on a.id = b.id;
右外連線:以右表為基礎來連線,如果右表的某行內容無法在左表中找到相對的row,則將左表統統用null來表示
select a.*,b.* from tablea a right join tableb b on a.id = b.id;
迫切左連線:解決n+1問題
當a與b表迫切左連線時(left join fetch),只保證載入需要的實體,即b
select a.*,b.* from tablea a left join fetch tableb b
內連線與外連線
本篇文章只是簡單介紹一下資料庫中的內連線和外連線。舉最簡單的兩個表的例子,有表a和表b,表a如下 aid主鍵,自增 表b如下 bid主鍵,自增 有sql基本知識的人都知道,兩個表要做連線,就必須有個連線字段,從上表中的資料可以看出,在a表中的aid和b表中的bnameid就是兩個連線字段。現在先說內...
內連線與外連線
圖3 連線關係圖 現在我們對內連線和外連線一一講解。1.內連線 利用內連線可獲取兩表的公共部分的記錄,即圖3的記錄集c 語句如下 select from a join b on a.aid b.bnameid 執行結果如下圖4所示 圖4 內連線資料 其實select from a,b where a...
外連線與內連線
1.左外連線 select from t a a left join t b b on a.id b.id select from t a a,t b b where a.id b.id 2.右外連線 3.完全外連線 4.等值連線 我們在看看等值連線的結果 select from t a a,t b...