交叉连接:(不常用)
返回两个表的笛卡尔乘积(也即全组合排列)中符合查询条件的数据行。

内连接
返回连接表中符合连接条件和查询条件的数据行。

左外连接
返回符合连接条件和查询条件(即:内连接)的数据行,且还返回左表中不符合连接条件但符合查询条件的数据行。

右外连接
返回符合连接条件和查询条件(即:内连接)的数据行,且还返回右表中不符合连接条件但符合查询条件的数据行。

全外连接(不常用,MySQL不支持)
返回符合连接条件和查询条件(即:内连接)的数据行,且还返回左表中不符合连接条件但符合查询条件的数据行以及右表中不符合连接条件但符合查询条件的数据行。

例子

表结构和数据:
users表

id name
1 李四
2 王五
4 张三

logs表

id user_id log
1 1 操作了A
2 1 操作了B
3 2 操作了C
4 2 操作了D
5 3 操作了E

交叉连接:
语句

SELECT
a.`id`,
a.`name`,
b.`log`
FROM
`users` AS a,
`logs` AS b

结果

id name log
1 李四 操作了A
2 王五 操作了A
4 张三 操作了A
1 李四 操作了B
2 王五 操作了B
4 张三 操作了B
1 李四 操作了C
2 王五 操作了C
4 张三 操作了C
1 李四 操作了D
2 王五 操作了D
4 张三 操作了D
1 李四 操作了E
2 王五 操作了E
4 张三 操作了E

内连接:
语句

SELECT
a.`id`,
a.`name`,
b.`log`
FROM
`users` AS a
INNER JOIN `logs` AS b ON a.`id` = b.`user_id`

结果

id name log
1 李四 操作了A
1 李四 操作了B
2 王五 操作了C
2 王五 操作了D

左外连接:
语句

SELECT
a.`id`,
a.`name`,
b.`log`
FROM
`users` AS a
LEFT JOIN `logs` AS b ON a.`id` = b.`user_id`

结果

id name log
1 李四 操作了A
1 李四 操作了B
2 王五 操作了C
2 王五 操作了D
4 张三 NULL

右外连接:
语句

SELECT
a.`id`,
a.`name`,
b.`log`
FROM
`users` AS a
RIGHT JOIN `logs` AS b ON a.`id` = b.`user_id`

结果

id name log
1 李四 操作了A
1 李四 操作了B
2 王五 操作了C
2 王五 操作了D
NULL NULL 操作了E

SQL多表联查总结的更多相关文章

  1. SQL多表联查

    left join >>>外联 on >>>跟and一样使用,作为外联条件 表明后面加大写字母表示该表别名 例: select A.*,B.name userNam ...

  2. mybatis-plus注解版实现多表联查(sql)

    mybatis注解版实现多表联查 需求: 用户有角色,角色有权限,需要一次取用户信息包含角色信息及其对应权限 实体类: package cn.zytao.taosir.common.model.use ...

  3. mybatis.net 多表联查

    mybatis.net针对多表联查,其实不用讲联查出的所有的列全部做一个新的resultMap,我们完全可以通过集成关系来实现,真是上一次说的懒加载,在一定程度上可以提高其性能,但这并不是说懒加载性能 ...

  4. asp.net mvc 三层加EF两表联查

    首先打开vs软件新建项目创建web中的mvc项目再右击解决方案创建类库项目分别创建DAL层和BLL层再把DAL层和BLL层的类重命名在mvc项目中的Models文件夹创建model类在DAL创建ADO ...

  5. SQLServer多表联查,多表分页查询

    多表联查: select p.*,s.Sheng , i.Shifrom  [dbo].[ProductRecordInfo]   --表名 p left join [ShengInfo] s on ...

  6. [工作日志] 2018-11-30 重要: 1. 多条件+ 分页 + 多表联查 2. idea拉新分支

    多条件+ 分页 + 多表联查 多条件查询 1.pom依赖 <dependency> <groupId>commons-dbutils</groupId> <a ...

  7. .NET MVC+ EF+调用存储过程 多表联查以及VIEW列表显示

    直接上干活,至于网上的一大堆处理方式不予评论,做好自己的就是最好的,供大家不走弯路 1.view页面 <link href="~/Content/bootstrap.css" ...

  8. Mybatis中多表联查,查询出来的字段出现重名,造成数据异常的解决方法!

    在做一对多出现的问题,引发的思考:当数据库表中,主表的主键id和明细表的中的字段名相同时怎么办?Mybatis进行自动映射赋值的时候会不会出现异常?                      注意:M ...

  9. Oracle使用SQL传输表空间

    源环境:RHEL 6.4 + Oracle 11.2.0.4 目的环境:RHEL 6.4 + Oracle 11.2.0.4 DG双机 要求:使用SQL传输表空间DBS_D_JINGYU从源环境到目的 ...

随机推荐

  1. form 表单<input type="button" value="登录" onclick="loginSubmit ()"/> 点击提示 Uncaught TypeError: loginSubmit is not a function

    在网上搜了一堆东东,仔细看了一下,再加上实验,发现原因出在<form>中. <form method="post"> <button type=&qu ...

  2. uuid的使用

    1.mysql中直接使用uuid()函数,可以生成一个随机的uuid 正常的uuid是36位长度的,其中有4个字符是‘-’,在mysql中可以使用replace()函数来替换‘-’ insert in ...

  3. Loadrunder之脚本篇——关联

    关联的原理 关联也属于一钟特殊的参数化.一般参数化的参数来源于一个文件.一个定义的table.通过sql写的一个结果集等,但关联所获得的参数是服务器响应请求所返回的一个符合条件的.动态的值. 例子:常 ...

  4. Vuex的入门教程

    前言 在 Vue.js 的项目中,如果项目结构简单, 父子组件之间的数据传递可以使用  props 或者 $emit 等方式,详细点击这篇文章查看. 但是如果是大型项目,很多时候都需要在子组件之间传递 ...

  5. rem布局原理

    昨天去面试,面试官竟然说他们用媒体查询针对不同的屏幕宽度做了9个不同的rem布局,呵呵... eg: html{font-size:20px;} div{width:16rem;height:100p ...

  6. Kubernetes Heapster

    Heapster是容器集群监控和性能分析工具,HPA.Dashborad.Kubectl top都依赖于heapster收集的数据. 但是Heapster从kubernetes 1.8以后已经被遗弃了 ...

  7. 【转载】关于C++中cin的几点说明性总结

    转载地址:http://www.07net01.com/program/289153.html 学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结: 1.cin 2.cin.get() 3.ci ...

  8. 通用Mapper(Mybatis)

    1.Mapper的简单介绍 2.Mapper的作用 通用Mapper可以通过Mybatis的拦截器原理,动态的帮我们实现单表的增删改查功能,大大降低了我们的开发成本,减少了我们的工作量. 3.Mapp ...

  9. 深入剖析JDK动态代理源码实现

    动态代理.静态代理优缺点优点:业务类只需要关注业务逻辑本身,保证了业务类的重用性.这是代理的共有优点.动态代理只有在用到被代理对象的时候才会对被代理类进行类加载. 而静态代理在编译器就已经开始占内存了 ...

  10. 树的dfs序 && 系统栈 && c++ rope

    利用树的dfs序解决问题: 就是dfs的时候记录每个节点的进入时间和离开时间,这样一个完整的区间就是一颗完整的树,就转化成了区间维护的问题. 比如hdu3887 本质上是一个求子树和的问题 #incl ...