前言:

项目中要写个存储过程,从4个表中各获取一个字段值,然后返回。

我这SQLSERVER的三脚猫功夫,上来乱整一顿,别说乱拳打死老师傅,差点把自己弄死!

用法:

使用 INNER JOIN(内连接),我们还可以使用其他几种连接。

下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。

  • JOIN: 如果表中有至少一个匹配,则返回行
  • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN: 只要其中一个表中存在匹配,就返回行

示例代码:

先抛块砖(不用想了,这么‘无敌’的写法肯定是我写的了)

select ta1.no,ta1.name1,ta2.name2,ta3.name3,ta4.name4 from
(select no,name1 from table1)as ta1,
(select no,name2 from table2)as ta2,
(select no,name3 from table3)as ta3,
(select no,name4 from table4)as ta4
where ta1.no=ta2.no and ta1.no=ta3.no and ta1.no=ta4.no

经高人指点,原来还有join这个东西,羞愧中。。。

SELECT ta1.no,ta1.name1,ta2.name2,ta3.name3,ta4.name4
FROM   table1 AS ta1 INNER JOIN table2 ta2 ON ta1.no=ta2.noINNER JOIN table3 ta3 ON ta1.no=ta3.noINNER JOIN table4 ta4 ON ta1.no=ta4.no 

以为大功告成,原来还早~

需要是有数据时返回查询所得,不满足条件时返回默认值,加上 left join 和 isnull的用法

最终方法

SELECT ta1.no,ISNULL(ta1.name1,0),ISNULL(ta2.name2,0),ISNULL(ta3.name3,0),ISNULL(ta4.name4,0)
FROM   table1 AS ta1 LEFT JOIN table2 ta2 ON ta1.no=ta2.noLEFT JOIN table3 ta3 ON ta1.no=ta3.noLEFT JOIN table4 ta4 ON ta1.no=ta4.no

SQLSERVER 多表联合查询(join)相关推荐

  1. sqlserver 多表联合查询

    数据库查询时,对单表的查询很难满足需求,通常都需要多表联合查询.多表连接大致分为内连接和外连接. 内连接和外连接的区别主要体现在返回数据上,内连接返回的是符合连接条件和查询条件的记录,外连接返回的数据 ...

  2. EF 表联合查询 join

    有两张表m_Dept.m_User,联合查询 linq方式.EF方式 private void Add(){List<m_Dept> lst = new List<m_Dept> ...

  3. mysql多表联查分页_sqlserver多表联合查询和多表分页查询的代码讲解

    sqlserver多表联合查询和多表分页查询的代码讲解 发布时间:2020-05-14 14:42:07 来源:亿速云 阅读:700 作者:Leah 这篇文章主要为大家详细介绍了sqlserver多表 ...

  4. ormlite 多表联合查询

    ormlite 多表联合查询 QueryBuilder shopBrandQueryBuilder = shopBrandDao.queryBuilder(); QueryBuilder shopQu ...

  5. 第四篇:Mysql查询-多表联合查询-及子查询

    mysql查询语句 多表联合查询 几子查询 1,单表查询:select * from 表名; eg:  select * from t1; 2,按条件查询: select 字段1,字段2,字段n... ...

  6. MyBatis 多表联合查询及优化

    关于优化 对于优化嘛,我这里简单的提几点,大家可以考虑一下.首先,就是对表的设计,在设计表初期,不仅仅要考虑到数据库的规范性,还好考虑到所谓的业务,以及对性能的影响,比如,如果从规范性角度考虑的话,可 ...

  7. MyBatis框架 多表联合查询实现

    三种方式: ①业务装配 对两个表编写单表查询语句,在业务层(Serivce)把查询的两个结果进行关联 ②使用Auto Mapping特性 在实现两表联合查询时通过别名完成映射,使用Maybatis的& ...

  8. android sqllite数据库的多表联合查询

    Android数据库有时候需要多表联合查询,经过学习,可以用以下代码 Currsor = db.rawQuery("select * from tablea as a left outer ...

  9. Oracle ODI 12c之多表联合查询以及定时任务设置

    本文介绍如何通过ODI进行多表联合查询并设置定时任务.准备工作如下: 准备物理方案和逻辑方案: 创建模型并通过"逆向工程"同步方案: 创建项目(根据实际情况创建或者使用现有的): ...

最新文章

  1. @ControllerAdvice注解(全局异常捕获)
  2. mongodb,redis,mysql简要对比
  3. 工艺路线和工序有差别吗_智能制造、数字化车间、数字化企业需要结构化工艺吗?...
  4. 大数据可视化设计到底是啥,该怎么用
  5. Java当中包装类的理解和一些常用方法的分享(学习后分享)
  6. sqlserver调用msxml3.dll中的xmlhttp对象
  7. P2030 - 【BJOI2006】狼抓兔子
  8. Android之Camera拍照
  9. 微信公众号是html页面吗,微信公众号网页开发
  10. linux安装protoc
  11. 机器人正运动学与旋量
  12. ug二次开发python_UG/NX二次开发入门指导
  13. Nifi从入门到精通(一)之 数据存储
  14. 5G时代车联网的通信协议——C-V2X
  15. SpringCLoud+redis+es高并发项目《九》(Spring Security Oauth2 JWT)
  16. 坐标转换—高斯正反算(附测量助理最新版软件下载)
  17. 适合中小企业的项目管理系统有哪些?
  18. 即席查询(Ad Hoc)如何做到又快又稳?
  19. 达梦数据库DM8之导入导出参数详解
  20. 弱电机房维保的六点主要内容

热门文章

  1. install samba on crux without net.
  2. Gradle2.0用户指南翻译——第七章. Java 快速入门
  3. (TPR译文)全身表示教学方法
  4. 转:CPU与内存的那些事
  5. c语言中Downto用法,语法
  6. Android 时间转换
  7. 谈谈深度学习中的 Batch_Size Batch_Size(批尺寸)是机器学习中一个重要参数,涉及诸多矛盾,下面逐一展开。 首先,为什么需要有 Batch_Size 这个参数? Batch 的选
  8. pycharm对项目进行重命名后导致项目内文件一系列异常
  9. 使用windows必备的185个技巧
  10. 微信小程序一双日记-项目分享