SQLSERVER 多表联合查询(join)
前言:
项目中要写个存储过程,从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)相关推荐
- sqlserver 多表联合查询
数据库查询时,对单表的查询很难满足需求,通常都需要多表联合查询.多表连接大致分为内连接和外连接. 内连接和外连接的区别主要体现在返回数据上,内连接返回的是符合连接条件和查询条件的记录,外连接返回的数据 ...
- EF 表联合查询 join
有两张表m_Dept.m_User,联合查询 linq方式.EF方式 private void Add(){List<m_Dept> lst = new List<m_Dept> ...
- mysql多表联查分页_sqlserver多表联合查询和多表分页查询的代码讲解
sqlserver多表联合查询和多表分页查询的代码讲解 发布时间:2020-05-14 14:42:07 来源:亿速云 阅读:700 作者:Leah 这篇文章主要为大家详细介绍了sqlserver多表 ...
- ormlite 多表联合查询
ormlite 多表联合查询 QueryBuilder shopBrandQueryBuilder = shopBrandDao.queryBuilder(); QueryBuilder shopQu ...
- 第四篇:Mysql查询-多表联合查询-及子查询
mysql查询语句 多表联合查询 几子查询 1,单表查询:select * from 表名; eg: select * from t1; 2,按条件查询: select 字段1,字段2,字段n... ...
- MyBatis 多表联合查询及优化
关于优化 对于优化嘛,我这里简单的提几点,大家可以考虑一下.首先,就是对表的设计,在设计表初期,不仅仅要考虑到数据库的规范性,还好考虑到所谓的业务,以及对性能的影响,比如,如果从规范性角度考虑的话,可 ...
- MyBatis框架 多表联合查询实现
三种方式: ①业务装配 对两个表编写单表查询语句,在业务层(Serivce)把查询的两个结果进行关联 ②使用Auto Mapping特性 在实现两表联合查询时通过别名完成映射,使用Maybatis的& ...
- android sqllite数据库的多表联合查询
Android数据库有时候需要多表联合查询,经过学习,可以用以下代码 Currsor = db.rawQuery("select * from tablea as a left outer ...
- Oracle ODI 12c之多表联合查询以及定时任务设置
本文介绍如何通过ODI进行多表联合查询并设置定时任务.准备工作如下: 准备物理方案和逻辑方案: 创建模型并通过"逆向工程"同步方案: 创建项目(根据实际情况创建或者使用现有的): ...
最新文章
- @ControllerAdvice注解(全局异常捕获)
- mongodb,redis,mysql简要对比
- 工艺路线和工序有差别吗_智能制造、数字化车间、数字化企业需要结构化工艺吗?...
- 大数据可视化设计到底是啥,该怎么用
- Java当中包装类的理解和一些常用方法的分享(学习后分享)
- sqlserver调用msxml3.dll中的xmlhttp对象
- P2030 - 【BJOI2006】狼抓兔子
- Android之Camera拍照
- 微信公众号是html页面吗,微信公众号网页开发
- linux安装protoc
- 机器人正运动学与旋量
- ug二次开发python_UG/NX二次开发入门指导
- Nifi从入门到精通(一)之 数据存储
- 5G时代车联网的通信协议——C-V2X
- SpringCLoud+redis+es高并发项目《九》(Spring Security Oauth2 JWT)
- 坐标转换—高斯正反算(附测量助理最新版软件下载)
- 适合中小企业的项目管理系统有哪些?
- 即席查询(Ad Hoc)如何做到又快又稳?
- 达梦数据库DM8之导入导出参数详解
- 弱电机房维保的六点主要内容
热门文章
- install samba on crux without net.
- Gradle2.0用户指南翻译——第七章. Java 快速入门
- (TPR译文)全身表示教学方法
- 转:CPU与内存的那些事
- c语言中Downto用法,语法
- Android 时间转换
- 谈谈深度学习中的 Batch_Size Batch_Size(批尺寸)是机器学习中一个重要参数,涉及诸多矛盾,下面逐一展开。 首先,为什么需要有 Batch_Size 这个参数? Batch 的选
- pycharm对项目进行重命名后导致项目内文件一系列异常
- 使用windows必备的185个技巧
- 微信小程序一双日记-项目分享