SQL中的联合查询

原创 2012年03月26日 17:15:47

a表

aaa    bbb    ccc

 1a      1b      1c

 2a      2b      2c

 3a      3b      3c

b表

aaa   bbb    ddd

 1a     1b       1d

 4a     4b       4d

1、union

union [all]

all:表示将查询的所有结果都合并到结果集中,若不加all会将重复的行只保留一行

select * from a union select * from b
结果:(查询的字段数相同)

select aaa,bbb from a union select aaa,bbb from b

结果:(重复的记录被覆盖)



select aaa,bbb from a union all select aaa,bbb from b
结果:(加上all,允许重复的行)

2、join

连接分为内连接、外连接、交叉连接

2.1、内连接 inner join (默认的连接方式)

只有至少有(指定的字段)一行的记录在两个查询表中都有记录,此时才有结果集。即返回两个表之间的交集(相同字段的记录)

SELECT * FROM  `a` INNER JOIN b ON a.aaa = b.aaa
结果:(两表有相同的字段的值的记录,会将字段连接起来,而不是union,将结果追加到记录的结果集后)

2.2、外连接

a、left join 左连接

返回查询表的记录,包含左边表的所有记录,如果左边表中的记录在右边表中没有对应的记录,则所返回右边表的字段结果为空(差集)

SELECT * FROM  `a` LEFT JOIN `b` ON a.aaa = b.aaa
结果:(b表没有的字段的值为空NULL)

b、right join 右连接

与left join相反,查询的记录包含右边表的所有记录,如果右边表中的记录在左边表中没有对应的记录,则返回左边表的字段值为空(差集)

SELECT * FROM `b` LEFT JOIN `a` ON a.aaa = b.aaa

结果:(a表没有的字段值为空NULL)


c、full join 全连接

返回左表和右表中的所有记录,即两表的数据全部显示

select * from a full join b

结果:(返回所有的记录)


3、cross in 交叉连接

不带where子句,返回两个表中所有笛卡尔积,记录数为a表和b表记录数的积

SELECT * FROM  `b` CROSS JOIN `a`
结果:


SELECT * FROM  `a` CROSS JOIN `b`
结果:


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

SQL联合查询(内联、左联、右联、全联)的语法

SQL联合查询(内联、左联、右联、全联)的语法 概述:   联合查询效率较高,举例子来说明联合查询:内联inner join 、左联left outer join 、右联right o...

SQL Server乐观锁定和悲观锁定实例

在SQL Server中,提供了几种表级锁定提示(locking hints),通过使用这些悲观锁,可以在多个同时修改数据库的用户间实现悲观并发控制。对数据库加锁后,其他人不可操作,直到加锁用户用CO...

linux通过端口号查找程序执行路径

#netstat -antlp grep 8888 好找到进程id,pid=3442 然后到/proc/3442 cwd的软链接,链接到的地方就是程序的执行路径 这里是/opt/sms-server ...
  • lsm135
  • lsm135
  • 2016-11-16 13:19
  • 1917

SQL使用(二)-----联合查询和单查询的优缺点

联合查询可以通过多步单查询来完成,那么什么时候用联合查询,什么时候用单查询呢?它们的优缺点各是什么呢?想必大家跟我一样也存在这种疑惑,我经过搜索相关资料,现对联合查询和单查询进行如下总结: 首先从我...

sql联合查询(内联、左联、右联、全联)

继上篇《sql内联查询》 引言        上篇谈到了sql内联查询是联合查询的一种,接下里这篇博客就介绍一下其它的查询方法,分别为左联、右联、全联。        还是用上篇...

bug宝典linux篇 libc.so.6(GLIBC_2.14)(64bit) is needed by

安装rpm -ivh MySQL-client-advanced-5.6.22-1.el7.x86_64.rpm提示[root@localhost src]# rpm -ivh MySQL-clien...
  • warrah
  • warrah
  • 2016-12-31 10:57
  • 3502

数据库之联合查询和连接查询

1.JOIN和UNION区别 join 是两张表做交连后里面条件相同的部分记录产生一个记录集, union是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集。 JOIN用于按照O...

第1.1章 hadoop之hadoop2集群(一)环境准备

此篇文章主要面向hadoop的初学者,选取的hadoop版本是2.6.4,搭建是hadoop完全分布式集群(单节点或伪分布式没有实际价值,所以不考虑)。 写此文的原因是因为我初学hadoop时,加入...
  • warrah
  • warrah
  • 2016-08-19 10:04
  • 1728

SQL使用(一)-----联合查询

本文主要对内连接(inner Join 或 Join)、外连接(outer Join) 、左外连接(left outer Join 或 left Join)、右外连接(right outer Join...

SQL使用(三)-----SQL优化总结

网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)