T-SQL的多表查询

        前面讲述过的所有查询都是基于单个数据库表的查询。如果一个查询需要对多个表进行操作,就称为联接查询,联接查询的结果集或结果称为表之间的联接。 联接查询实际上是通过各个表之间共同列的关联性来查询数据的,它是关系数据库查询最主要的特征。

表联接类型

表联接类型可以分为内联接,外联接和交叉联接等。

1.内联接

        内联接(igmgr join)是最常用的一种联接方式,只返回两个数据集合之间匹配关系的行,将位 于两个互相交叉的数据集合中重叠部分以内的数据行联接起来。

        内联接使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与联接相匹配的数据行。

 

2.外联接

外联接(outer join)是对内联接的扩充,除了将两个数据集合中重复部分以内的数据行联接起 来之外,还可以根据要求返回左侧或右侧表中非匹配的数据或全部的数据。

外联接分为以下几种:

(1)左外联接 左外联接(left join 或 left outer join)的结果集包括左表的所有行。如果左表的某一行在右表中没有匹配行,则右表返回空值,否则返回相应值。

(2)右外联接 右外联接(right join 或right outer join)是左外联接的反向联接,将返回右表的所有行,如果右 表的某一行在左表中没有匹配行,则左表返回空值,否则返回相应值。

(3)全联接/完整外联接 全联接/完整外联接(full join或full outer join)将返回左表和右表中的所有行.当某一行在另 一个表中没有匹配行时,另一个表返回空值,否则返回相应值。

根据联接查询的两个数据集合按照其出现位置的不同,可以将两个表分别定义为左侧表(左表)和右侧表(右表)。

3.交叉联接

交叉联接就是表之间没有任何关联条件,查询将返回左表与右表挨个联接的所有行,就是左表 中的每行与右表中的所有行再一一组合,相当于两个表“相乘”。

实验案例:

84acbf99c0514579a1af3f2cce77b43d.pngf6b629d8e8f1443a97ac41cfa032721d.png

需求描述

1>在products表和sales表中查询产品的名称,种类、成本、销售地点和销售价格。

2>在products表和sales表中查询销往海南的产品名称、种类、成本和销售价格。

2>在products表和sales表中查询销往北京的蔬菜名称、种类、成本和销售价格。

 

1/在products和sales表中查询产品的名称、种类、成本、销售地点和销售价格。

select products.名称 名称products,products.种类 种类products,products.成本 成本products,sales.销售地点 销售地点sales,sales.销售价格 销售价格sales
from products inner join sales on products.名称=sales.名称

5876251ac47a4760b2e47e156fe32531.png

 

2/查询销往海南的产品名称、种类、成本和销售价格。

select products.名称 名称products,products.种类 种类products,products.成本 成本products,sales.销售价格 销售价格sales
from products inner join sales on products.名称=sales.名称
where 销售地点='海南'

d5f7f7fb8db54dc590a2295183608e7c.png

 

3/查询销往北京的蔬菜名称、种类、成本和销售价格。

select products.名称 名称products,products.种类 种类products,products.成本 成本products,sales.销售价格 销售价格sales
from products inner join sales on products.名称=sales.名称
where 销售地点='北京'

bde3c5aaec28414f95e1100d7ccabdbf.png

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/216615.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

听GPT 讲Rust源代码--src/tools(7)

File: rust/src/tools/rust-analyzer/crates/ide/src/inlay_hints/chaining.rs 在Rust源代码中,rust-analyzer/crates/ide/src/inlay_hints/chaining.rs这个文件的作用是生成Rust代码中的链式调用提示。 具体来说,当我们使用链式调用时,例如A…

C语言——深入理解指针(5)

目录 1. sizeof和strlen的对比 1.1 sizeof 1.2 strlen 1.3 sizeof和strlen 的对比 2. 数据和指针题解析 2.1 一维数组 2.2 字符数组 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2,6 2.3 二维数组 3. 指针运算题解析 3.1 例1 3.2 例2 3.3 例3 3.4 例4 3.5 例5 3.6 例…

python中的进制转换和原码,反码,补码

python中的进制转换和原码,反码,补码 计算机文件大小单位 b bit 位(比特) B Byte 字节 1Byte 8 bit #一个字节等于8位 可以简写成 1B 8b 1KB 1024B 1MB 1024KB 1GB 1024MB 1TB 1024GB 1PB 1024TB 1EB 1024PB 进制分类 二进制:由2个数字组成,有0 和 1 pyth…

如何无线桥接路由器,让你的网络覆盖范围变大,做到网络信号无缝连接

你是否希望通过在两个路由器之间创建无线网桥(网络桥接)来扩大网络覆盖范围?好吧,你来对地方了!在当今日益互联的世界,拥有一个强大可靠的网络比以往任何时候都更重要。 无线网桥允许你无线连接两个或多个路由器,有效地扩展网络覆盖范围,并在更大的区域提供无缝的互联…

巧借C++算法实现冒泡排序算法

目录 引言冒泡排序原理具体实现步骤示例代码时间复杂度和稳定性优化可能性结束语 引言 作为计算机专业出身的开发者,以及从事软件开发相关的小伙伴,想必对C语言并不陌生,它是一门非常厉害的编程语言,不仅是基于程序底层的语言&a…

Proteus8.16仿真软件安装图文教程(Proteus 8 Professional)

Proteus8.16 🔧软件安装包下载链接:🔧视频教程🔧1 安装软件解压🔧2 安装🔧3 破解🔧4 汉化 🔧软件安装包下载链接: Proteus8.16软件下载链接 1、本文关于Proteus8.16 SP…

关于“你对SpringCloud的理解”

看看普通人和高手是如何回答这个问题的? 普通人 Spring Cloud 是一套微服务解决方案 它包括配置中心、RPC 通信、服务注册、服务熔断等组件 高手 Spring Cloud 是一套 分布式微服务的技术解决方案 它提供了快速构建分布式系统的 常用的一些组件 比如说配置…

人工智能与供应链行业融合:开启智能化供应链的新时代

随着人工智能技术的快速发展,供应链行业正迎来革命性变革。本文将探索人工智能在供应链管理中的应用领域,并分析其带来的益处和挑战,展望人工智能与供应链融合的未来发展趋势。 引言 供应链管理是企业运营中不可或缺的重要组成部分。它涵盖了…

Typora免费版安装教程(仅供学习)

目录 一、Typora简介二、Typora安装三、Typora补丁四、Typora使用体验五、总结 一、Typora简介 Typora是一款非常流行的Markdown编辑器,它能够将Markdown文本转化为漂亮的排版,并且支持实时预览。Typora具有简单易用的界面,使得用户可以轻松地…

微机原理9

一、单项选择题(本大题共15小题,每小题3分、共45分。在每小题给出的四个备选项中,选出一个正确的答案,请将选定的答案填涂在答题纸的相应位置上。) 8088 系统的内存最大容量为 16MB. 其地址总线为() A. 16 位 B. 20 位 C. 24 位 D. 32 位 2,以CPU为核心…

鸿宇多用户商城user.php RCE漏洞复现

0x01 产品简介 鸿宇多用户商城是一款支持各行业的多商家入驻型电商平台系统,商家版APP,微信商城,小程序及各种主流营销模块应有尽有,是一个功能强大的电子商务平台,旨在为企业和个人提供全面的在线购物解决方案。 0x02 漏洞概述 鸿宇多用户商城 user.php 存在任意命令执行漏洞…

无人机停机坪的主要功能有哪些

随着无人机行业领域的不断完善,无人机停机坪作为一项关键基础设施,正发挥着越来越重要的作用。无人机停机坪也叫无人机机巢、无人机机库、无人机机场。无人机停机坪不仅是无人机的“家”,更是其高效运行的关键环节。让我们一同探索无人机停机…

SQL Sever 基础知识 - 数据筛选(3)

SQL Sever 基础知识 - 四、数据筛选 第7节 BETWEEN7.1 BETWEEN 运算符概述7.2 BETWEEN 示例7.2.1 BETWEEN 与数字示例7.2.2 BETWEEN 和日期示例 第8节 LIKE8.1 LIKE运算符概述8.2 转义字符8.3 LIKE 示例8.3.1 % (百分号) 通配符示例8.3.2 _(下划线)通配符示例8.3.3 [字符列表] …

【Qt开发流程】之定时器事件与随机数示例

描述 QObject是所有Qt对象的基类,提供了Qt中基础的定时器支持。通过QObject::startTimer()函数,可以使用毫秒为单位的时间间隔来启动一个定时器。该函数返回一个唯一的整数定时器ID。该计时器现在将以规律的间隔触发,直到显式调用QObject::k…

安卓apk抓包(apk抓不到包怎么办)

起因 手机(模拟器)有时候抓不到apk的包,需要借助Postern设置一个代理,把模拟器的流量代理到物理机的burp上。 解决方案 使用Postern代理,把apk的流量代理到burp。 Postern是一个用于代理和网络流量路由的工具&#xf…

智能优化算法应用:基于黑猩猩算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于黑猩猩算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于黑猩猩算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.黑猩猩算法4.实验参数设定5.算法结果6.参考文献7.…

根文件系统lib库添加与初步测试

一. 简介 我们在编译 busybox源码时,选择的是动态编译,所以,制作生成的 根文件系统中/bin或 /sbin目录下软件运行时会调用到一些库文件的。库文件就是交叉编译器的库文件。 前面我们编译 busybox源码时,选择动态编译&#xff0…

APP逆向工具环境安装

环境安装及配置: 1.JDK安装及配置链接:https://pan.baidu.com/s/146I4vDJdz8YeR0OEqLS8xw 提取码:7h00 2.SDK环境配置链接:https://pan.baidu.com/s/1A8rwqyw8Nn7p93Axqpll3A 提取码:cwv43.NDK环境配置链接&#xff1…

YITH WooCommerce Social Login跨境电商网站社交登录高级版插件

点击阅读YITH WooCommerce Social Login跨境电商网站社交登录高级版插件原文 YITH WooCommerce Social Login跨境电商网站社交登录高级版插件让您的用户节省时间并通过他们的社交资料之一登录或注册网站。 您如何从中受益: 用户无需填写表格、插入个人数据&#…

华清远见嵌入式学习——C++——作业5

作业要求&#xff1a; 代码&#xff1a; #include <iostream>using namespace std;//沙发 类 class Sofa { private:string sitting; //是否可坐double *cost; //花费 public://无参构造函数Sofa(){}//有参构造函数Sofa(string s,double c):sitting(s),cost(new double(…