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,所以运行结果就不显示出来了。

SQL——JOIN(连接)的更多相关文章

  1. 【SQL】各取所需 | SQL JOIN连接查询各种用法总结

    前面 在实际应用中,大多的查询都是需要多表连接查询的,但很多初学SQL的小伙伴总对各种JOIN有些迷糊.回想一下,初期很长一段时间,我常用的似乎也就是等值连接 WHERE 后面加等号,对各种JOIN也 ...

  2. SQL Join连接

    SQL 连接(Joins) SQL join 用于把来自两个或多个表的行结合起来. SQL JOIN SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段. 最常见的 J ...

  3. SQL join 连接时 条件加在 on后面和 where 的区别

    task 是用户任务表,manageuser是用户表,以left join 为参考: 此时主表是task,三条sql语句:注意区别.第一句无筛选条件,第二句筛选条件在on后面,第三句sql的筛选语句放 ...

  4. SQL JOIN连接分类[转]

    1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符):包括相等联接和自然联接: 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行:    2.外联接.外联接可以 ...

  5. LINQ系列:LINQ to SQL Join连接

    1. 一对多 var expr = context.Products .Where(p => p.Category.CategoryName == "LINQ to SQL" ...

  6. SQL Join(连接查询)

    1.连接查询分为: inner join(自然连接,自连接) Left join(左连接)/Left outer join(左外连接):效果一样 Right join(右连接)/Right outer ...

  7. SQL Join连接大小表在前在后的重要性(小表在前提高执行效率)

    引用地址:https://blog.csdn.net/qq_30349961/article/details/82662550 http://blog.sina.com.cn/s/blog_6ff05 ...

  8. SQL表连接查询(inner join、full join、left join、right join)

    SQL表连接查询(inner join.full join.left join.right join) 前提条件:假设有两个表,一个是学生表,一个是学生成绩表. 表的数据有: 一.内连接-inner ...

  9. sql表连接left join,right join,inner join三者之间的区别

    sql表连接left join,right join,inner join区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 (以左表数据为基准,不足补为NULL) ...

  10. SQL ----------- join (inner join 内连接)

    SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段,把两个表中的数据放在一个表中查询 注意: join 连接有多种方式,比如内连接,外连接,交叉连接 可以和where ...

随机推荐

  1. pgloader 学习(六) 加载csv 数据

    关于加载的配置参数都是使用comand file command file 参考格式 LOAD CSV FROM 'GeoLiteCity-Blocks.csv' WITH ENCODING iso- ...

  2. BZOJ 1213: [HNOI2004]高精度开根

    二次联通门 : BZOJ 1213: [HNOI2004]高精度开根 正解 NTT+高精+倍增+二分 但是可以用python 2333333 m,n=int(raw_input()),int(raw_ ...

  3. Error:gradle-resources-test:thymeleaf-in-action.main: java.lang.NoClassDefFoundError: org/apache/tools/ant/util/ReaderInputStream

    目录 Error:gradle-resources-test:thymeleaf-in-action.main: java.lang.NoClassDefFoundError: org/apache/ ...

  4. 如果判断条件过多,可以直接在computed里面去返回需要判断的数据

    bad <div class="offer-item_margin" v-show="offer.supplierName || offer.supplierSto ...

  5. 配置Always On AG

    1.准备测试环境的服务器 在 Always On AG 中如果需要自动 Failover 至少需要集群中有 3 台服务器,但是我只是测试功能,因此只使用了两台服务器.并且本文不涉及任何 Pacemak ...

  6. CFD-Post批量添加截面

    有时候我们需要在一个算例中截取多个面 我们打开CFD-Post 我们编写如下的Python代码来实现在一个算例当中截取多个面 源代码如下: 上述代码完成以后,我们重新打开CFD-Post

  7. 2019暑假Java学习笔记(三)

    目录 面向对象 对象 构造方法 引用与对象实例 static final 封装 this 继承 super 方法重载与重写 多态 抽象类 接口 内部类 成员内部类 静态内部类 局部内部类 匿名内部类 ...

  8. Spring Boot 项目 application.properties配置说明

    #======================================================================================# ★☆★☆★☆★☆★☆ ...

  9. [代码质量] Maintainability Index (MI)

    转载自: http://www.projectcodemeter.com/cost_estimation/help/GL_maintainability.htm ProjectCodeMeter Ma ...

  10. IntelliJ IDEA Check out from git

    点击check out from vesion control 填写git地址,test,clone