SQL中的inner join, left join, right join, full join

创建两个测试表并且输入相关值
create table test_a(
aid int,
aNum varchar(255)
);
create table test_b(
bid int,
bNum varchar(255)
);

insert into test_a(aid, aNum)
values
(1, 'a2015001'),
(2, 'a2015002'),
(3, 'a2015003'),
(4, 'a2015004'),
(5, 'a2015005');
insert into test_b(bid, bNum)
values
(1, 'b160200p'),
(2, 'b2015002b'),
(3, 'b2015003b'),
(4, 'b2015004b'),
(8, 'b2015008');

inner join

等值连接, 只返回两个表中连接字段相等的行
select * from test_a inner join test_b on aid = bid;
结果表只返回两个表中字段相等的行

left join

左连接 返回包括左表中的所有记录和右表中联结字段相等的记录
select * from test_a left join test_b on aid = bid;
返回包括左表中的所有记录和右表中联结字段相等的记录,没值用null填充
left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.

right join

右联接 返回包括右表中的所有记录和左表中联结字段相等的记录
select * from test_a right join test_b on aid = bid;
返回包括右表中的所有记录和左表中联结字段相等的记录,没值用null填充
和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.

full join

全联接 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行,相当于left join 和right join的并集
select * from test_a full join test_b on aid = bid;
返回两个表的所有记录
返回两个表的所有记录,没有的值用null补充

sql的基本语句的更多相关文章

  1. SQL高性能查询优化语句(总结)

    SQL 高性能查询优化语句,一些经验总结 1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where ...

  2. 如何判断一条sql(update,delete)语句是否执行成功

    如何判断一条sql(update,delete)语句是否执行成功 catch  (SQLException    e)  {  }  catch不到错误应该就成功了.   ============== ...

  3. SQL数据库基本语句

    SQL特点--> 1)综合统一.SQL是集数据定义.数据操作和数据控制于一体,语言峰峰统一,可独立完成数据库生命周期的所有活动. 2)高度非过程化.SQL语言是高度非过程化语言,当进行数据操作时 ...

  4. 利用 SQL Monitor 查看语句运行状态步骤

    利用 SQL Monitor 查看语句运行状态步骤 1.确定语句被 SQL Monitor 监控 SQL> SELECT * FROM GV$SQL_MONITOR WHERE sql_id=' ...

  5. SQL SELECT INTO 语句

    SQL SELECT INTO 语句可用于创建表的备份复件. SELECT INTO 语句 SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中. SELECT INTO 语句常用 ...

  6. discuz 万能SQL查询调用语句写法

    首先在最底层source\class\table写入底层安全调用文件例如:table_common_friendlink.php 代码: <?php /** * [Discuz!] (C)200 ...

  7. 将EXCEL中的列拼接成SQL insert插入语句

    工作中经常需要将EXCEL文件中的数据导入到各种数据库,但是对于不熟悉数据库的人来说,如果直接使用命令执行导入,这无疑是一个难题,也是一个风险.这里我们直接在EXCEL文件中拼接成标准的SQL ins ...

  8. SQL 常用基础语句

    1.SQL SELECT 语句 语法:SELECT    列名称    FROM    表名称 2.SQL SELECT DISTINCT 语句 语法:SELECT    DISTINCT    列名 ...

  9. SQL 2008执行语句遇到内存不足(1)——error 701

    原文:SQL 2008执行语句遇到内存不足(1)--error 701 转自:http://blogs.msdn.com/b/apgcdsd/archive/2011/01/17/sql-2008-e ...

  10. SQL 无限级分类语句

    原文:SQL 无限级分类语句 原表数据为: 此处用到了with关键字,在程序中也可以用递归实现,但觉得还是没有一条sql方便 with tb (ID,Name,ParentID,Sort) as( s ...

随机推荐

  1. POJ 1556 The Doors(线段相交+最短路)

    题目: Description You are to find the length of the shortest path through a chamber containing obstruc ...

  2. JAVA中几种常用的RPC框架介绍

    原文:https://blog.csdn.net/zhaowen25/article/details/45443951

  3. Go学习之路

    注:图片来自 https://github.com/gocn/knowledge, 更新在此,共勉前行者.

  4. innodb文件损坏处理

    innodb文件损坏报错如下: 2018-09-03T09:52:43.486363Z 0 [ERROR] InnoDB: Space id and page no stored in the pag ...

  5. Windows下ToroiseSVN基本使用&&在Visual studio中使用SVN

    首先在 https://tortoisesvn.net/downloads.html 下载svn客户端 下载并安装好之后再开始菜单会出现如下图标: 现在可以开始使用TortoiseSVN了,选择一个本 ...

  6. 【原创】运维基础之Docker(1)简介、安装、使用

    docker 18.09 官方:https://docs.docker.com/ 一 简介 Docker is a platform for developers and sysadmins to d ...

  7. 【原创】大数据基础之ElasticSearch(4)es数据导入过程

    1 准备analyzer 内置analyzer 参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis- ...

  8. 十一.keepalived高可用服务实践部署

    期中集群架构-第十一章-keepalived高可用集群章节======================================================================0 ...

  9. Set集合(scala)

    特点 Set集合最大的特点是:无序 不可重复 定长Set集合 无序 scala> val set = Set(1,5,4,3,7) set: scala.collection.immutable ...

  10. mac os app 开发

    macOS 新手开发:第 1 部分 macOS 新手开发:第 2 部分 macOS 新手开发:第 3 部分