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

2021-07-14 13:03:51 字數 1602 閱讀 3242

首先需要解釋一下這幾個聯接的意思: 2

left join(左聯接): 返回包括左表中的所有記錄和右表中聯結字段相等的記錄。 3

right join(右聯接): 返回包括右表中的所有記錄和左表中聯結字段相等的記錄。

inner join(等值連線): 只返回兩個表中聯結字段相等的行。

接下來,建立乙個資料庫,然後建立兩張表,分別為mytable1和mytable2,然後向這兩張表中插入一些我們要測試的資料,這裡忽略建庫和建表過程,望理解。

好了,接下來,我們來查詢一下是否新增成功了:

我們根據上一步查詢,可以看出,表1中的id編號分別為:1,2,3,5,而表2中的id編號分別為:1,2,3,4,也就是說,兩個表中的最後一條資料是對應不上的,接下來,我們來看一下left join執行的效果,語句為:

通過結果我們可以看出,left join是以表1的記錄為基礎,即左表的記錄全部顯示出來,而表2只顯示符合搜尋條件的記錄顯示出來,即右表根據條件顯示,那這裡的條件就是a.id=b.id,記錄不足的會以null填充顯示。

接下來,我們看一下right join執行的效果,語句為:select * from mytable1 a right join mytable2 b

我們會發現,right join執行的效果剛好和left join執行的效果相反,即以右表的資料為基礎,顯示右表全部資料,而只顯示左表符合搜尋條件的資料。

接下來,我們再看一下inner join執行的效果,語句為:select * from mytable1 a inner join mytable2 b

通過結果,我們可以發現,inner join不以任何資料為基礎,只顯示符合搜尋條件的資料。

綜合以上資訊,我們就可以清楚的知道,當你需要兩個或者多個表的資料的時候,你想要什麼樣的資料,該用什麼樣的聯接,這對於資料操作來說,是乙個很大的便利。

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

今天聽到有位童鞋說cvte面試問到資料庫左聯接 右聯接的問題了,才發現自己不知道,所以總結了下。如果我們想在兩個或以上的表獲取其中從乙個表中的行與另乙個表中的行匹配的資料,這時我們應該考慮使用join,因為join具備聯接表或函式進行查詢的特性。舉個例子,有兩個表學校表 school 和教師表 te...

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...