SQL笔记-第七章,表连接
SQL中使用JOIN 关键字来使用表连接。表连接有多种不同的类型,被主流数据库系统支持的有交叉连接(CROSS JOIN)、内连接(INNER JOIN)、外连接(OUTTER JOIN),另外在有的数据库系统中还支持联合连接(UNION JOIN)。
一.内连接(INNER JOIN)
SELECT FNumber,FPrice
FROM T_Order INNER JOIN T_Customer
ON FCustomerId= T_Customer.FId
WHERE T_Customer.FName=’TOM’
在这个SQL 语句中,首先列出了组成结果集所需要的列名,而后则是在FROM 关键字后指定需要的表,在INNER JOIN 关键字后指明要被连接的表,而在ON 关键字后则指定了进行连接时所使用的条件。指定列所属的表后,我们就可以很轻松的引用同名的字段了,比如下面的SQL 语句检索所有的订单以及它们对应的客户的相关信息
SELECT T_Order.FId,T_Order.FNumber,T_Order.FPrice, T_Customer.FId,T_Customer.FName,T_Customer.FAge
FROM T_Order INNER JOIN T_Customer
ON T_Order.FCustomerId= T_Customer.FId
表别名
SELECT o.FId,o.FNumber,o.FPrice, c.FId,c.FName,c .FAge
FROM T_Order o JOIN T_Customer c
ON o.FCustomerId= c.FId
二.不等值连接
SELECT T_Order.FNumber,T_Order.FPrice, T_Customer.FName,T_Customer.FAge
FROM T_Order
INNER JOIN T_Customer
ON T_Order.FPrice< T_Customer.FAge*5
and T_Order.FCustomerId=T_Customer.FId
三.交叉连接
隐式
SELECT c.FId, c.FName, c.FAge,
o.FId, o.FNumber, o.FPrice
FROM T_Customer c, T_Order o
显式
SELECT T_Customer.FId, T_Customer.FName, T_Customer.FAge, T_Order.FId, T_Order.FNumber, T_Order.FPrice
FROM T_Customer
CROSS JOIN T_Order
四.自连接
查询具有相同的FTypeId字段值的两个不同的订单
SELECT o1.FNumber,o1.FPrice,o1.FTypeId,o2.FNumber,o2.FPrice,o2.FTypeId
FROM T_Order o1
INNER JOIN T_Order o2
ON o1.FTypeId=o2.FTypeId and o1.FId<o2.FId
五.外部连接
右外部连接(RIGHT OUTER JOIN)
左外部连接(LEFT OUTER JOIN)
和全外部连接(FULLOUTER JOIN)。
左外部连接还返回左表中不符合连接条件的数据;
左外部连接还返回右表中不符合连接条件的数据;
全外部连接还返回左表中不符合连接条件的数据以及右表中不符合连接条件的数据,它其实是左外部连接和左外部连接的合集。
1.左外部连接
SELECT o.FNumber,o.FPrice,o.FCustomerId, c.FName,c.FAge
FROM T_Order o
LEFT OUTER JOIN T_Customer c
ON o.FCustomerId=c.FId
WHERE o.FPrice>=150
2.右外部连接
SELECT o.FNumber,o.FPrice,o.FCustomerId, c.FName,c.FAge
FROM T_Order o
RIGHT OUTER JOIN T_Customer c
ON o.FCustomerId=c.FId
3.全外部连接(mysql不支持)
SELECT o.FNumber,o.FPrice,o.FCustomerId,c.FName,c.FAge
FROM T_Order o
FULL OUTER JOIN T_Customer c
ON o.FCustomerId=c.FId
for mysql
SELECT o.FNumber,o.FPrice,o.FCustomerId,
c.FName,c.FAge
FROM T_Order o
LEFT OUTER JOIN T_Customer c
ON o.FCustomerId=c.FId
UNION
SELECT o.FNumber,o.FPrice,o.FCustomerId,
c.FName,c.FAge
FROM T_Order o
RIGHT OUTER JOIN T_Customer c
ON o.FCustomerId=c.FId
SQL笔记-第七章,表连接的更多相关文章
- JVM学习笔记-第七章-虚拟机类加载机制
JVM学习笔记-第七章-虚拟机类加载机制 7.1 概述 Java虚拟机描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被 ...
- Android群英传笔记——第七章:Android动画机制和使用技巧
Android群英传笔记--第七章:Android动画机制和使用技巧 想来,最 近忙的不可开交,都把看书给冷落了,还有好几本没有看完呢,速度得加快了 今天看了第七章,Android动画效果一直是人家中 ...
- SQL 中不同类型的表连接
http://www.linuxidc.com/Linux/2012-08/68035.htm 1.简介 在关系型数据库中,join操作是将不同的表中的数据联合在一起时非常通用的一种做法.首先让我们看 ...
- Getting Started With Hazelcast 读书笔记(第七章)
第七章 部署策略 Hazelcast具有适应性,能根据不同的架构和应用进行特定的部署配置,每个应用可以根据具体情况选择最优的配置: 数据与应用紧密结合的模式(重点,of就是这种) 胖客户端模式(最好用 ...
- [Python学习笔记][第七章Python文件操作]
2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...
- o'Reill的SVG精髓(第二版)学习笔记——第七章
第七章:路径 所有描述轮廓的数据都放在<path>元素的d属性中(d是data的缩写).路径数据包括单个字符的命令,比如M表示moveto,L表示lineto.接着是该命令的坐标信息. 7 ...
- 《图解HTTP》阅读笔记--第七章---确保WEB安全的HTTPS
第七章.确保WEB安全的HTTPSHTTP的缺点:通信使用明文(不加密),内容可能会被窃听 解决---加密处理: //将通信加密 :通过SSL(安全套接层)---HTTPS(超文本传输安全协议)--- ...
- Sql Server系列:多表连接查询
连接查询是关系数据中最主要的查询,包括内连接.外连接等.通过连接运算符可以实现多个表查询.内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值.SQL Server中的内连接有 ...
- SQL 经典回顾:JOIN 表连接操作不完全指南
2017-02-23 小峰 ITPUB 点击上方“蓝字”可以关注我们哦  |转载自:码农网 |原文链接:www.codeceo.com/article/sql-join-guide.html ...
随机推荐
- 黑马程序员:Java编程_集合
=========== ASP.Net+Android+IOS开发..Net培训.期待与您交流!=========== 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象 ...
- 用meta-data配置参数
在接入第三方渠道SDK的时候,经常会看到其配置文件AndroidManifest.xml有类似如下的定义: <!-- appid --> <meta-data android:nam ...
- Activity 属性设置大全
activity属性设置大全 android:allowTaskReparenting=["true"|"false"] 是否允许activity更换从属的任务 ...
- Day18_集合第四天
1.Map集合成员方法(掌握) 增加功能 V put(K key, V value) 当key在集合中不存在时,添加元素:当key在集合存在时候,替换元素 删除功能 void clear 清除所有键值 ...
- oracle 跨数据库取数据
思路:先从另一个数据库里把数据取出来, 然后,把这个数据集合解析,根据这个数据集合拆分组合成一个创建oralce临时表的方法及数据的插入.紧接着就可以写sql语句进行联合查询了. 下面是具体实例的方法 ...
- Git 问题
You are not currently on a branch, so I cannot use any 症状:有一次pull的时候又出现冲突,这回用“git reset --hard FETCH ...
- nginx配置rewrite
1. uri 和 url读取区别 区别就是URI定义资源,而URL不单定义这个资源,还定义了如何找到这个资源. 比如说,一个服务器上,到一个文件夹/网页的绝对地址(absolute path)就是U ...
- selenium下拉框选择
下拉框结构如下,我需要选择的是new: html为: <select id="condition_type" name="condition_type" ...
- Sedgewick的红黑树
红黑树一直是数据结构中的难点,大部分关于算法与数据结构的学习资料(包括<算法导论>)对于这部分的讲解都是上来就下定义,告诉我们红黑树这个性质那个性质,插入删除要注意1234点,但是基本没有 ...
- Dictionary 序列化与反序列化
[转:http://blog.csdn.net/woaixiaozhe/article/details/7873582] 1.说明:Dictionary对象本身不支持序列化和反序列化,需要定义一个继承 ...