MYSQL语法:左连接、右连接、内连接、全外连接
生活随笔
收集整理的這篇文章主要介紹了
MYSQL语法:左连接、右连接、内连接、全外连接
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 概念
- 上手使用
- left join(左連接)
- rint join(右連接)
- inner join(內連接,等同join)
- full join(全連接,等同full outer join)
概念
left join(左連接):返回包括左表中的所有記錄和右表中連接字段相等的記錄。
right join(右連接):返回包括右表中的所有記錄和左表中連接字段相等的記錄。
inner join(內連接):只返回兩個表中連接字段相等的行。
full join (全外連接):返回左右表中所有的記錄和左右表中連接字段相等的記錄。
概念理解起來比較困難的話,我們用一個圖來表示:
上手使用
首先,我這里用了兩個表,表之間沒有什么聯系,只是為了演示所用。
表1數據:
表2數據
left join(左連接)
-- left join:返回包括左表中的所有記錄和右表中連接字段相等的記錄 select * from t_user t1 left join t_role t2 on t1.id = t2.id;展示結果集如下:
rint join(右連接)
-- right join:返回包括右表中的所有記錄和左表中連接字段相等的記錄。 select * from t_user t1 right join t_role t2 on t1.id = t2.id;展示結果集如下:
inner join(內連接,等同join)
-- inner join:只返回兩個表中連接字段相等的行。 select * from t_user t1 inner join t_role t2 on t1.id = t2.id;展示結果集如下:
full join(全連接,等同full outer join)
-- mysql不支持full join select * from t_user t1 full join t_role t2 on t1.id = t2.id;如果使用以上sql則會報錯:
[SQL]select * from t_user t1 full outer join t_role t2 on t1.id = t2.id; [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'full outer join t_role t2 on t1.id = t2.id' at line 1mysql中可以使用union all加左右連接實現full join的效果
-- mysql的full join:返回左右表中所有的記錄和左右表中連接字段相等的記錄。 select * from t_user t1 left join t_role t2 on t1.id = t2.id union all select * from t_user t1 right join t_role t2 on t1.id = t2.id where t1.id is null展示結果集如下:
總結
以上是生活随笔為你收集整理的MYSQL语法:左连接、右连接、内连接、全外连接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何使用idea REST Clinet
- 下一篇: CentOS7下安装mysql-5.7.