`
zhaolei415
  • 浏览: 166173 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

理解内连接和外连接

阅读更多
内连接:进行连接的两个表对应的相匹配的字段完全相同的连接。join

外连接又分为左外连接和右外连接。
左连接即LEFT OUTER JOIN:
两个表进行左连接时会返回左边表中的所有的行和右边表中与之相匹配的列值没有相匹配的用空值代替。

右连接即RIGHT OUTER JOIN:
两个表进行右连接时会返回右边表中的所有的行和左边表中与之相匹配的列值没有相匹配的用空值代替。


我们建立两张表,students、class并插入测试数据
students
---------------------------
id     name     classId
1      name1    1
2      name2    null
3      name3    2
---------------------------

class

-----------------------
id       name
1        class1
2        class2
3        class3
-----------------------


实验结果如下:
mysql> select s.name,c.name from students s join class c where s.classId=c.id ; (注:inner join和join一样) 
+-------+-------+
| name  | class |
+-------+-------+
| name1 | 1     |
| name3 | 2     |
+-------+-------+
2 rows in set

mysql> select s.name,c.name from students s left join class c on s.classId=c.id ; (left join 和 left outer join 一样)
+-------+-------+
| name  | class |
+-------+-------+
| name1 | 1     |
| name2 | NULL  |
| name3 | 2     |
+-------+-------+
3 rows in set

mysql> select s.name,c.name from students s right join class c on s.classId=c.id ; (right join 和 right outer join 一样)
+-------+-------+
| name  | class |
+-------+-------+
| name1 | 1     |
| name3 | 2     |
| NULL  | 3     |
+-------+-------+
3 rows in set


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics