以前学过数据库基本原理的,但是许多地方没怎么用,都忘记了。对于SQL的一些知识也忘记了。

最被经常碰见的是(inner join)内连接和(outer join)外连接。这两个到底有什么区别呢?

我们看看两张表

表:A
nameage
John20
Smithnull
Marry19
表:B
nameaddress
JohnUS
SmithChina
nullUS
Tomnull

看看内连接的SQL句子

select * from A, B where A.name = B.name; --或者下面的句子
SELECT * from A INNER JOIN B where A.name = B.name; 
内连接的结果
nameagenameaddress
John20JohnUS
SmithnullSmithChina

内连接是返回两个表都存在的记录.(在连接的条件位置,null的不在结果中)。可以看出来,内连接是在取交集,需要两个表都出现的记录,并且符合where条件。

外连接

我看先看看左外连接的SQL语句

SELECT * from A left JOIN B on A.name=B.name;
左外连接的结果
nameagenameaddress
John20JohnUS
SmithnullSmithChina
Marry19nullnull

外连接是返回一个表(或两个表)的所有的记录(在连接的条件位置,null出现在结果中)。然后以左表为基础,列出符合左表的部分。

扩展阅读:SQL连接 – wikipedia

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: SQL内连接外连接区别 – https://www.chenyudong.com/archives/sql-inner-join-outer-join.html