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

2021-08-09 04:31:56 字數 1401 閱讀 7175

資料庫中的聯接(join)是乙個非常重要的概念,能夠很好地幫助我們解決資料庫的相關問題。本文將講解mysql中的聯接方式:內聯接(inner join),左聯接(left join),右聯接(right join),交叉連線(cross join)。

我們將以下面兩張**t1與t2為例來具體講解上述四種聯接方式。

1.內聯接(inner join)

內聯接(inner join),也稱為等值連線,只返回兩個表中聯結字段相等的行。

我們將t1和t2進行內聯接,聯接欄位為id:

select * from t1 inner join t2 on t1.id=t2.id;
查詢結果如下:

當然還可以這樣寫:

select * from t1,t2 where t1.id=t2.id;
2.左聯接(left join)

左聯接(left join),以左表的全部為基準,返回左表中所有和右表中聯結字段相等的記錄以及右表中沒有匹配的字段部分返回null.

select * from t1 left join t2 on t1.id=t2.id;
查詢結果如下:

3.右聯接(right join)

右聯接(right join),以右表的全部為基準,返回右表中所有和左表中聯結字段相等的記錄以及左表中沒有匹配的字段部分返回null.

select * from t1 right join t2 on t1.id=t2.id;
查詢結果如下:

4.交叉聯接(cross)

交叉聯接(cross)返回兩張表的笛卡爾乘積。

select * from t1 cross join t2;
查詢結果如下:

當然也可以這樣寫:

select * from t1,t2;
mysql並不支援full join,但可以通過left join和right join來實現。

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

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

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

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

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

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