JOIN基于多个表之间的共同字段,把多个表的行结合起来。

一、INNER JOIN 关键字

INNER JOIN关键字:在表中存在至少一个匹配时返回行。

语法如下:

SELECT 列名1,列名2... FROM 表1 INNER JOIN 表2 ON 表1.列名 = 表2.列名;

演示student表:                  演示class表:

    

例子:

SELECT * FROM student INNER JOIN class ON student.class_id = class.class_id;

运行结果:

可以看到student表的class_id=7和class表的class_id6都没有搜索出来。

二、LEFT JOIN 关键字

LEFT JOIN 关键字:返回表1的所有行,表2没有匹配的则为NULL。

语法格式如下:

SELECT 列名1,列名2... FROM 表1 LEFT JOIN 表2 ON 表1.列名 = 表2.列名;

例子:

SELECT * FROM student LEFT JOIN class ON student.class_id = class.class_id;

运行结果:

可以看到,返回了student表的所有行,class表不匹配的显示NULL。

三、RIGHT JOIN关键字

RIGHT JOIN关键字:和LEFT JOIN关键字相反,返回表2的所有行,表1中没有匹配的则显示为NULL。

语法格式如下:

SELECT 列名1,列名2... FROM 表1 RIGHT JOIN 表2 ON 表1.列名 = 表2.列名;

例子:

SELECT * FROM student RIGHT JOIN class ON student.class_id = class.class_id;

运行结果:

可以看到,返回了class表的所有行,student表不匹配的显示NULL。

四、FULL OUTER JOIN关键字

FULL OUTER JOIN关键字:返回表1表2中的所有行(注意MySql中不支持)。

语法格式如下:

SELECT 列名1,列名2... FROM 表1 FULL OUTER JOIN 表2 ON 表1.列名 = 表2.列名;

例子:

SELECT * FROM student FULL OUTER JOIN class ON student.class_id = class.class_id;

╭(╯^╰)╮由于使用的是MySql,所以运行结果就不显示出来了。

最新文章

  1. jQuery easyui treegrid无法传参到后台bugger一记
  2. CentOS系统下Hadoop 2.4.1集群安装配置(简易版)
  3. 不变(Invariant), 协变(Covarinat), 逆变(Contravariant) : 一个程序猿进化的故事
  4. jsoup抓取借书记录
  5. Asp.Net ORM
  6. SqlServer_事务
  7. 怎么查询局域网内全部电脑IP和mac地址等信息?
  8. 在Xcode4中给程序提供命令行参数(转)
  9. Caffe : Layer Catalogue(1)
  10. c#程序添加其他网站的webservice引用。
  11. JQuery -> 超级简单的下拉菜单
  12. spring mvc在普通类中获取HttpServletRequest对象
  13. VTK显示mhd,mha格式文件
  14. mysql cluster部署
  15. ASP.NET Zero--后端应用程序
  16. EXTJS的使用
  17. 程序员大佬推荐的java学习路线
  18. 1038 一元三次方程求解 2001年NOIP全国联赛提高组
  19. log4j.properties配置详解与实例(转载)
  20. myeclipse 上安装 Maven3<转>

热门文章

  1. 20199302《Linux内核原理与分析》第十二周作业
  2. hibernate工具类
  3. Cogs 732. [网络流24题] 试题库(二分图)
  4. dedecms 模板文件不存在,无法解析文档的终极各种解决办法
  5. es6学习3:promise
  6. python在windows上创建虚拟环境
  7. vooya --- a YUV player and a generic raw data player
  8. mysql union all limit的使用
  9. MySQL中的比较操作符<=>
  10. 009 SpringBoot+Swagger的使用