SQL Join 左聯接 右聯接 內聯接等

2021-07-04 20:25:06 字數 979 閱讀 8158

今天聽到有位童鞋說cvte面試問到資料庫左聯接、右聯接的問題了,才發現自己不知道,所以總結了下。

如果我們想在兩個或以上的表獲取其中從乙個表中的行與另乙個表中的行匹配的資料,這時我們應該考慮使用join,因為join具備聯接表或函式進行查詢的特性。

舉個例子,有兩個表學校表(school)和教師表(teacher)

school(num,name,leader)num:學校編號;name:學校名;leader:學校領導

teacher(name,school)name:教師名;school:教師所屬學校

即包含所有join左邊表中的記錄甚至是右邊表中沒有與之匹配的記錄,沒有與之匹配的記錄用null表示。

sql語句:select school.name,teacher.name 

from school left join teacher on school = num

這句話就是說查詢所有學校以及其中的老師,如果乙個學校中沒有老師,那麼就是null。

它以左表為主。

即包含所有join右邊表中的記錄甚至是左邊表中沒有與之匹配的記錄,沒有與之匹配的記錄用null表示。

sql語句:

select school.name,teacher.name 

from school right join teacher on school = num

這句話就是說查詢所有老師以及其所在的學校,如果老師沒有學校,那麼就是null。

它以右表為主。

sql語句:select school.name,teacher.name 

from teacherinner join school on school=num

這句話就是說要列出同時存在的老師的名字和他所屬的學校,內聯接滿足交換律:「a inner join b」和「b inner join a」是相等的。

是要將兩個表中所有資料都列出來,有空為null

等等還有一些交叉聯接等聯接

sql 左聯接,右聯接,內聯接的比較

首先需要解釋一下這幾個聯接的意思 2 left join 左聯接 返回包括左表中的所有記錄和右表中聯結字段相等的記錄。3 right join 右聯接 返回包括右表中的所有記錄和左表中聯結字段相等的記錄。inner join 等值連線 只返回兩個表中聯結字段相等的行。接下來,建立乙個資料庫,然後建立...

MySQL之內聯接 左聯接 右聯接 交叉聯接

資料庫中的聯接 join 是乙個非常重要的概念,能夠很好地幫助我們解決資料庫的相關問題。本文將講解mysql中的聯接方式 內聯接 inner join 左聯接 left join 右聯接 right join 交叉連線 cross join 我們將以下面兩張 t1與t2為例來具體講解上述四種聯接方式...

關於資料庫內聯接和左聯接

在學習資料庫的時候選擇的是一本翻譯書,有些概念沒有搞清楚,現在總結一下。內聯接語句 select from table1 one inner join table2 two on one.table1 id two.table2 id 返回的結果是兩個表中都存在的匹配資料 左聯接語句select f...