SQL联合查询(内联、左联、右联、全联)语法
SQL联合查询(内联、左联、右联、全联)语法
概述:
联合查询效率较高,举例子来说明联合查询:内联inner join 、左联left outer join 、右联right outer join 、全联full outer join 的好处及用法。
联合查询效率较高,以下例子来说明联合查询(内联、左联、右联、全联)的好处:
|
T1表结构 |
userid |
username |
password |
|
1 |
jack |
jackpwd |
|
|
2 |
owen |
owenpwd |
|
|
T2表结构 |
userid |
jifen |
dengji |
|
1 |
20 |
3 |
|
|
3 |
50 |
6 |
|
第一:内联(inner join)。
如果想把用户信息、积分、等级都列出来,那么一般会这样写:select * from T1 ,T3 where T1.userid = T3.userid(其实这样的结果等同于select * from T1 inner join T3 on T1.userid=T3.userid )。
把两个表中都存在userid的行拼成一行(即内联),但后者的效率会比前者高很多,建议用后者(内联)的写法。
SQL语句:select * from T1 inner join T2 on T1.userid=T2.userid
|
运行结果 |
T1.userid |
username |
password |
T2.userid |
jifen |
dengji |
|
1 |
jack |
jackpwd |
1 |
20 |
3 |
第二:左联(left outer join)。
显示左表T1中的所有行,并把右表T2中符合条件加到左表T1中;右表T2中不符合条件,就不用加入结果表中,并且NULL表示。
SQL语句:select * from T1 left outer join T2 on T1.userid=T2.userid
|
运行结果 |
T1.userid |
username |
password |
T2.userid |
jifen |
dengji |
|
1 |
jack |
jackpwd |
1 |
20 |
3 |
|
|
2 |
owen |
owenpwd |
NULL |
NULL |
NULL |
第三:右联(right outer join)。
显示右表T2中的所有行,并把左表T1中符合条件加到右表T2中;左表T1中不符合条件,就不用加入结果表中,并且NULL表示。
SQL语句:select * from T1 right outer join T2 on T1.userid=T2.userid
|
运行结果 |
T1.userid |
username |
password |
T2.userid |
jifen |
dengji |
|
1 |
jack |
jackpwd |
1 |
20 |
3 |
|
|
NULL |
NULL |
NULL |
3 |
50 |
6 |
第四:全联(full outer join)。
显示左表T1、右表T2两边中的所有行,即把左联结果表+右联结果表组合在一起,然后过滤掉重复的。
SQL语句:select * from T1 full outer join T2 on T1.userid=T2.userid
|
运行结果 |
T1.userid |
username |
password |
T2.userid |
jifen |
dengji |
|
1 |
jack |
jackpwd |
1 |
20 |
3 |
|
|
2 |
owen |
owenpwd |
NULL |
NULL |
NULL |
|
|
NULL |
NULL |
NULL |
3 |
50 |
6 |
总结,关于联合查询,效率的确比较高,4种联合方式如果可以灵活使用,基本上复杂的语句结构也会简单起来。这4种方式是:1)Inner join 2)left outer join 3)right outer join 4)full outer join
SQL联合查询(内联、左联、右联、全联)语法的更多相关文章
- SQL联合查询(内联、左联、右联、全联)的语法(转)
最近在做一个比较复杂的业务,涉及的表较多,于是在网上找了一些sql联合查询的例子进行研究使用. 概述: 联合查询效率较高,举例子来说明联合查询:内联inner join .左联left outer j ...
- SQL联合查询(内联、左联、右联、全联)的语法
联合查询效率较高,举例子来说明联合查询:内联inner join .左联left outer join .右联right outer join .全联full outer join 的好处及用法. 联 ...
- SQL联合查询:子表任一记录与主表联合查询
今天有网友群里提了这样一个关于SQL联合查询的需求: 一.有热心网友的方案: 二.我的方案: select * from ( select a.*,(select top 1 Id from B as ...
- SQL联合查询两个表的数据
刚有个项目,需要查询水位数据表中的水位信息,及查询降雨量表中统计时段降雨量的数据,以计算出日降雨量,而且时段是前一天8时到后一天8时总共24个小时. 两个子查询: 1.根据当前时间判断统计前天8时到今 ...
- sql联合查询
联合查询效率较高.以下例子来说明联合查询的好处 t1表结构(用户名,密码) userid int username varchar(20) password ...
- SQL联合查询中的关键语法(转)
联合查询效率较高.以下例子来说明联合查询的好处 t1表结构(用户名,密码) userid int username varchar(20) password ...
- (转载)SQL联合查询中的关键语法
(转载)http://www.cnblogs.com/zhangliyu/archive/2009/03/21/1418215.html 联合查询效率较高.以下例子来说明联合查询的好处 t1表结构(用 ...
- SQL联合查询中的关键语法
http://www.cnblogs.com/aaapeng/archive/2010/01/20/1652151.html 联合查询效率较高.以下例子来说明联合查询的好处 t1表结构(用户名,密码) ...
- 使用SQL联合查询来构建临时vo对象的应用
联合查询: 表1: team球队表 表2:schedule 赛程表 需要数据: 球队名称.主队ID.主队名称.客队ID.客队名称.胜负情况 方法1. Object数组取出列和数值 import jav ...
随机推荐
- Python学习笔记:PEP8常用编程规范
PEP8编码规范是一种非常优秀的编码规范,也得到了Python程序员的普遍认可,如果实践中或者项目中没有统一的编码规范,建议尽量遵循PEP8编码规范,当然如果项目中已经有了自身的编码规范,应当优先遵循 ...
- CentOS网络设置 couldn't resolve host 'mirrorlist.centos.org问题解决
在VMWare上安装好centos后,使用yum安装nodejs报错:can not resolve host 'mirritlist.centos.org', 百度上很多都说在/etc/resolv ...
- JDK及配置
Java Jdk开发时环境,程序员使用 Jre运行时环境,用户使用 Jdk的配置 1.新建java_home jdk的安装路径 例:C:\Program Files (x86)\Java\jdk1 ...
- Android面试收集录6 事件分发机制
转自:秋招面试宝典. 一. 基础认知 1.1 事件分发的对象是谁? 答:事件 当用户触摸屏幕时(View或ViewGroup派生的控件),将产生点击事件(Touch事件). Touch事件相关细节(发 ...
- python面向对象的反射
python面向对象中的反射:通过字符串的形式操作对象相关的属性.python中的一切事物都是对象(都可以使用反射) getattr # 根据字符串的形式,去对象中找成员.hasattr # 根据字符 ...
- 十四、pymysql模块
一.安装的两种方法 第一种 #安装 pip3 install pymysql 第二种 二.链接,执行sql,关闭(游标) import pymysql user= input('用户名:>> ...
- python中全局变量的修改
对于全局变量的修改,如果全局变量是int或者str,那么如果想要在函数中对函数变量进行修改,则需要先在函数内,声明其为global,再进行修改 如果是list或者dict则可以直接修改 a = 1 b ...
- com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 's.areaname' in 'field list'错误
在使用mybatis框架做查询的时候,出现了如下错误: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown colum ...
- PowerShell技巧:使用XPath语法查询XML文件
[TechTarget中国原创] XML是存储结构化数据的一个很好的途径,但是想要让数据在其中发挥作用又会有些困难.每一种语言都有其特定方式来查询XML文件中的命名空间.元素及属性.PowerShel ...
- ios开发3.5和4.0寸屏幕自适应中的一点问题
在开发iso应用中需要考虑到ip4的3.5寸屏幕和ip5的4寸屏幕的高度不一样的问题.常见的问题有滚动条位置,底部被挡住等情况:我遇见是tableview中添加下拉上提刷新功能时刷新指示器显示位置的问 ...