07SQL - letf join 和 inner join 的 区别
区别 Join INNER
2023-09-11 14:15:41 时间
概念
left join(左联接): 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接): 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接): 只返回两个表中联结字段相等的行
案例
表A
表B
left join
sql语句如下:
select * from A
left join B
on A.aID = B.bID
结果如下:
(所影响的行数为 5 行)
注意:
left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
B表记录不足的地方均为NULL.
right join
sql语句如下:
select * from A
right join B
on A.aID = B.bID
结果如下:
(所影响的行数为 5 行)
结果说明:
和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.
inner join
sql语句如下:
select * from A
innerjoin B
on A.aID = B.bID
结果如下:
结果说明:
很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.
相关文章
- java中wait和sleep的区别
- 对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过文氏图 Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。 交差集" cross join 《Linux命令行与shell脚本编程大全
- Class.forName和ClassLoader到底有啥区别
- c#中invoke和beginvoke的区别
- DirectX和DirectShow介绍和区别
- select、poll、epoll之间的区别总结[整理]
- C++11新式洗牌std::shuffle与老式洗牌函数std::random_shuffle的区别
- Mysql current_time,current_date()与now()区别
- 一、submit和button区别
- Floyd算法与Dijkstra算法的区别
- 浅析JavaScript图片文字隐写术:什么是隐写术、隐写术与密码学区别、Unicode 中的不可见字符、StegCloak库实现隐写术
- nginx中proxy_set_header Host $host的作用及$proxy_host,$host与$http_host的区别
- EntityFramework Add方法与Attach区别
- zsh配置,以及zsh和bash的区别