SQL学习(五)多表关联-join
在实际工作中会用到多表联查,此时需要用到关键字JOIN
一、inner join(内连接)
至少有一个匹配时返回行,只返回两个表中连接字段相等的行
如:
select * from ticket
inner join job
on ticket.id=job.t_id
只查询出,ticket.id=job.t_id的数据
二、left join(左连接)
即使右表中没有匹配,也从左表中返回所有的行
如:
select * from ticket
left join job
on ticket.id=job.t_id
不管ticket.id是不是等于job.t_id,首先返回ticket中的所有数据;如果ticket.id=job.t_id时,返回相应的job数据;如果ticket.id!=job.t_id时,对应的job数据显示为null
三、right join(右连接)
即使左表中没有匹配,也从右表中返回所有的行
如:
select * from ticket
right join job
on ticket.id=job.t_id
不管ticket.id是不是等于job.t_id,首先返回job中的所有数据;如果ticket.id=job.t_id时返回相应的ticket数据;如果ticket.id!=job.t_id时,对应的ticket数据显示为null
四、full join(外连接)
只要其中一个表中存在匹配,则返回行(返回两个表中的行)
如:
select * from ticket
full join job
on ticket.id=job.t_id
不管ticket.id是不是等于job.t_id,首先返回ticket和job的所有数据;如果ticket.id=job.t_id时,会在相应的ticket数据后显示job数据;如果ticket.id!=job.t_id时,ticket数据和job数据分两行显示,其对应方的数据分别显示null
SQL学习(五)多表关联-join的更多相关文章
- Oracle\MS SQL Server Update多表关联更新
原文:Oracle\MS SQL Server Update多表关联更新 一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表 ...
- [NewLife.XCode]扩展属性(替代多表关联Join提升性能)
NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netstandard,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示 ...
- Hive中小表与大表关联(join)的性能分析【转】
Hive中小表与大表关联(join)的性能分析 [转自:http://blog.sina.com.cn/s/blog_6ff05a2c01016j7n.html] 经常看到一些Hive优化的建议中说当 ...
- 【SQL】在SQL Server中多表关联查询问题
好久没有写SQL语句的多表连接查询,总在用框架进行持久化操作.今天写了一个多表关联查询,想根据两个字段唯一确定一条数据 失败的案例如下: SELECT cyb.id,ad.name FROM [Gen ...
- ofbiz学习笔记01--多表关联查询
不管做什么项目,肯定会用到多表关联查询数据,从网络查询得知ofbiz有三种多表关联查询方法 实现一:Screem.xml 中的 section 里,加 <action>, 加 get-re ...
- SQL学习之联结表的使用
1.简介:"联结(join)表"是SQL最强大的功能之一.联结是利用SQL的SELECT能执行的最重要的操作,很好地理解联结及其语法是学习SQL的极为重要的部分! 在能够有效的使用 ...
- mysql数据库-初始化sql建库建表-关联查询投影问题
下面是一个简易商城的几张表的创建方式 drop database if exists shop ; create database shop CHARACTER SET 'utf8' COLLATE ...
- sql中修改多表关联的字段
表1:USERID USERNAME USERREMARK 表2:ROLEID USERID ROLENAME 其中表1的USERID与表2的USERID为关联字段. 若现在只知道ROLEID,要修改 ...
- sql学习笔记:表的运算
在MICK的<SQL基础教程>里读到的一章,写的很好,之前很乱的思路变清晰了很多.简单来说,表的运算主要是两种:列的运算和行的运算. 表的加减法 这里是对表的列操作(向下扩展).因此,按照 ...
随机推荐
- Centos下安装compoer, 解决vendor目录问题
laravel部署时使用git拉代码的话,vendor目录部署是没有提交到git上的,如果没有该目录,服务会报错如下 Warning: require(/opt/soft/pro/bootstrap/ ...
- SpringBoot 上传读取图片 巨坑
之前自己也做过文件上传,不过存储路径放在那个tomcat服务器路径下,就没遇到什么问题 但前几天在做图片的上传,想把文件放在项目下指定的一个文件夹下,就感觉有点麻烦 修改配置文件 在springboo ...
- C# 各个版本特征
历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持.微软将C#提交给标准组织ECMA,C# 5.0目前是ECM ...
- Linux常用命令type、date
Linux命令类型: 内置命令(shell内置):cd is shell builtin 外部命令:命令 is /usr/bin/命令,在文件系统的某个路径下有一个与命令名称相应的可执行文件 type ...
- PyHook3----键盘鼠标操作
需要安装 pywin32 安装pyHook 下载网址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml 注意选择的pyHook版本一定要和python对 ...
- 基于node.js的websocket 前后端交互小功能
一.node var ws = require("nodejs-websocket"); console.log("开始建立连接...") var server ...
- WPF程序发布有关事项
- BZOJ 3060: [Poi2012]Tour de Byteotia 并查集
前 $k$ 个节点形成的结构必定是森林,而 $[k+1,r]$ 之间肯定是都连上,而剩下的一个在 $[1,k],$一个在 $[k+1,r]$ 的节点就能连多少连多少即可. Code: #include ...
- Helvetic Coding Contest 2019
题目链接:戳我 小注:其中部分(大括号不换行的)代码是BLUESKY007神仙写的. 咕 CF1184 A1 直接枚举,以根号的时间复杂度判断即可.注意x,y都是正整数. #include<io ...
- 小程序日期格式(yyyy-MM-dd HH:mm:ss)转(yyyy/MM/dd HH:mm:ss)
let newDate = (date).replace(/-/g, '/'); var date = new Date(newDate).getTime();