这是一篇关于SQL 脚本表间连接join的可视化说明

news2024/11/24 19:03:48

使用SQL合并两个数据集可以通过JOINS来完成。JOIN是查询的FROM子句中的SQL指令,用于标识要查询的表以及它们应该如何组合。

主键和外键

通常,在关系数据库中,数据被组织到由属性(列)和记录(行)组成的各种表中。在每个表中存在一个列,该列是主键,该列中的每个条目唯一地表示该表中的单个行。这通常是ID(identifier的缩写)列。表中通过共享值与另一个表的主键建立关联的列称为外键。外键通常也是有标题的ID,但前面有被引用表的名称。

当使用JOIN将两个或多个表组合在一起时,就应用了这个概念。在下面的例子中,我们有两个表:用户表(表1)和事件表(表2)。我们希望将这两个表连接在一起,以获取用户数据以及事件数据。一个真实的例子是,如果你有一个CRM工具(如Salesforce)中包含付费用户(表1)和一个事件分析工具(如Mixpanel)中的数据,它可以跟踪所有在你的产品中执行某项操作的用户(表2)。
Example tables to JOIN
请注意,在两个表之间有一个以绿色突出显示的公共列(维度),即用户ID。在User Table中,ID列是用户ID,是该表的主键,而在Event Table中,User_ID列是外键,因为该列引用Users表中的ID列。我们可以使用这种关系将两个表连接在一起,以在一个表中获取用户和事件信息。

Meet the joins 满足连接

有三种常见的方法可以将任何两个或更多的表连接在一起,我们将首先讨论:外部连接(outer join)内部连接(inner join)左连接(left join)。使用上面的示例用户表(User Table)事件表(Event Table),让我们看看一些连接的示例…

Outer Join 外部连接

假设您希望拥有一个包含所有用户表和事件表数据的数据表。
您可以使用“outer join”将表连接在一起。如果可能,外部联接将来自一个或多个公共维度上的所有表的列组合在一起,并包括来自所有表的所有数据。

Outer JOIN

Inner Join 内部连接

What if you want to have a table that contains only users that have done an action?
如果您希望拥有一个只包含已执行操作的用户的表,该怎么办?
您可以使用内联接来将表联接在一起。如果可能,内部联接组合公共维度(前N列)上的列,并且仅包括公共N列中共享相同值的列的数据。在该示例中,用户ID将是用于内部联接的公共维度。

Inner JOIN

Left Join 左连接

现在,如果您希望拥有一个包含所有用户数据和这些用户执行的操作的表,该怎么办?不应包括不在用户表中的其他用户执行的操作?

您可以使用左连接将表连接在一起。如果可能,左联接将公共维度(前N列)上的列合并,返回第一个表中的所有行以及连续表中的匹配行。当没有匹配项时,连续表中的结果为NULL。在这种情况下,我们将使用户表作为左联接使用的第一个表(左表)。

Left JOIN

Union and Cross Join 联合和交叉联接

除了这些常见的联接类型之外,还有一些方法会导致输出表中的额外行和更多列。其中两种连接类型称为UnionCross Join。这些连接类型可能不适合上面的示例表,但是为了便于本文,我们仍然可以使用它们来了解这些连接是如何工作的。Union Join会将表堆叠在另一个的顶部,从而产生新的行。

UNION

一个很好的用例是,如果您希望通过追加而不是连接两个表来组合它们。交叉连接将导致一个表中的行的所有可能组合在一起。这可能会导致巨大的表,因此应谨慎使用。

Cross JOIN

交叉连接可能仅在表中包含单个值时使用,您希望在没有公共维度的情况下将这些值连接在一起。

摘要备忘单

SQL JOINs type cheat sheet

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android Sutdio 导入libs文件夹下的jar包没反应

有点离谱,笨笨的脑子才犯的错误 首先发现问题:转移项目的时候 直接复制粘贴libs文件夹下的jar包到新项目,在build.gradle文件下 使用语句并应用也没反应(jar包没有出现箭头且代码报错,找不到) implementa…

1个用户促成800万订单背后:三翼鸟将极致用户运营进行到底

今年暑假档,《长安三万里》是一批当之无愧的黑马,总票房正式超过光线动画《姜子牙》,创造了追光动画的票房新纪录。 当朋友们纷纷打卡分享强烈安利这部电影时,我不由感叹“它究竟有怎样的魔力”,形成如此炸裂的口碑传…

zabbix自动注册服务器以及部署代理服务器

文章目录 Zabbix自动注册服务器及部署代理服务器一.zabbix自动注册1.什么是自动注册2.环境准备3.zabbix客户端配置4.在 Web 页面配置自动注册5.验证自动注册 二.部署 zabbix 代理服务器1.分布式监控的作用:2.环境部署3.代理服务器配置4.客户端配置5.web页面配置5.1 …

Harmony创建项目ohpm报错

Harmony创建FA模型的项目时报如下错: The registry is empty - edit .ohpmrc file or use "ohpm config set registry your_registry" command to set registry.解决方法: File -> Settings -> Build,Execution,Deployment -> Ohpm …

error_Network Error

此页面为订单列表,是混合开发(页面嵌入在客户端中) 此页面为订单列表,此需求在开发时后端先将代码发布在测试环境,我在本地调试时调用的后端接口进行联调没有任何问题。 此后我将代码发布在测试环境,在app中打开页面&#xff0c…

LED灯具在亚马逊美国站销售,需要有UL认证或者UL报告、FCC等

LED灯具在亚马逊美国站销售,需要有UL认证或者UL报告、FCC、如果是带消毒杀菌的灯具则需要做EPA,欧洲站,日本站,认证只需要CE和ROHSR认证。UL认证:该认证主要针对充电器、移动电源、手机电池、灯具、家用电器、电动工具等的安全性。…

香港城市大学调研广东育菁装备智能产线

育菁装备总经理杨先生代表公司对到访的香港城市大学老师们表示热烈欢迎 杨经理详细介绍了公司和产品的基本情况,参观了我司生产车间、在参观过程中,杨总及工程师向梁主任等老师展示了小型工业4.0智能制造教学产线产品,这是我司自主研发、拥有…

《Zookeeper》源码分析(十)之选举通信管理器QuorumCnxManager

目录 QuorumCnxManager数据结构构造函数toSend()connectOne(sid)connectOne(sid, electionAddr)QuorumConnectionReqThread数据结构run() startConnection()receiveConnection() QuorumCnxManager 前面我们介绍过ServerCnxnFactory,它负责管理与客户端的通信&#…

07_Hudi案例实战、Flink CDC 实时数据采集、Presto、FineBI 报表可视化等

7.第七章 Hudi案例实战 7.1 案例架构 7.2 业务数据 7.2.1 客户信息表 7.2.2 客户意向表 7.2.3 客户线索表 7.2.4 线索申诉表 7.2.5 客户访问咨询记录表 7.3 Flink CDC 实时数据采集 7.3.1 开启MySQL binlog 7.3.2 环境准备 7.3.3 实时采集数据 7.3.3.1 客户信息表 7.3.3.2 客户…

19.正则表达式

19.1什么是正则表达式 ●正则表达式( Regular Expression) 是用于匹配字符串中字符组合的模式。在JavaScript中, 正则表达式也是对象 ●通常用来查找、替换那些符合正则表达式的文本,许多语言都支持正则表达式 ●正则表达式在JavaScript中的使用场景: …

如何攻击神经网络?人工智能VS人工智障

一、前言 自2012年起,人工智能快速发展,频繁出现在大众视野。从Alpha GO到ChatGPT,人工智能已成为不可阻挡的发展趋势。但是由于神经学习的黑盒性质,导致神经网络难以解释,且难以控制。即使像ChatGPT这种强大的模型&a…

Node.js学习笔记-04

这第九章也是个大重点 九、玩转进程 Node在选型时决定在V8引擎之上构建,也就意味着它的模型与浏览器类似。 本章关于进程的介绍和讨论将会解决如下两个问题: 单进程单线程并非完美,如今CPU基本均是多核的,真正的服务器&#xf…

2022美亚杯个人赛复现

复现一下2022美亚杯 目录 1 全局搜索 2 UNIX时间戳 3 4 5 6 7 谷歌邮箱 8 谷歌邮箱数据库 9 10 查找URL 的ip 11 12 13 14 15 16 17 18 19 20 21 分析 waze导航 22 23 查看苹果手机接受照片的方式 24 25 26 27 查找备忘录上锁问文件 28 29 30 …

【Sklearn】基于随机森林算法的数据分类预测(Excel可直接替换数据)

【Sklearn】基于随机森林算法的数据分类预测(Excel可直接替换数据) 1.模型原理1.1 模型原理1.2 数学模型 2.模型参数3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果 1.模型原理 随机森林(Random Forest)是一种集成学习方法…

基于dbn+svr的交通流量预测,dbn详细原理

目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机(RBM) DBN+SVR的交通流量预测 基本结构 主要参数 数据 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络,拥有提取特征,非监督学习的能力,是一种非常好的分类算法,本文将DBN+SVR用于交通流量预测…

ML在2023年最成功的案例:ControlNet

一、说明 这里说的 ControlNet不是工业控制的控制网络,而是深度学习的神经网络植入某些控制环节,它是 2023 年 ML 领域最大的成功案例之一。这是一种简单,可解释的方式来对扩散模型的输出施加影响的模型。 二、ControlNet 是什么?…

【学习FreeRTOS】第7章——FreeRTOS临界段代码保护及调度器挂起与恢复

1.临界段代码保护简介 临界段代码也叫做临界区,是指那些必须完整运行,不能被打断的代码段,适用场合如: 外设:需严格按照时序初始化的外设:IIC、SPI等等系统:系统自身需求用户:用户…

p7付费课程笔记7:G1 GC

目录 前言 什么是G1 GC? 重要语义讲解 标记过程 注意事项 适用场景分析 应用建议 问题 常用配置参数 前言 上次我们讲了CMS GC, 这次我们讲解G1 GC;在开始之前我们要思考下我们为什么学G1 GC?学习后有什么好处? 成为更好的Java开…

安达发APS|生产计划排产软件助力加工制造业智能化转型

随着全球经济一体化的不断深入,市场竞争日益激烈,加工制造企业面临着巨大的生存压力。在这种情况下,企业对于生产计划的精细化管理需求日益迫切。为了适应这一市场需求,安达发推出了专门针对加工企业的APS生产计划排产软件&#x…

四、Linux中cd、pwd以及相对/绝对路径和特殊路径符

1、cd命令: cd命令可以切换当前工作目录,基础语法是: cd [linux路径] (1)、打开Linux的命令提示行,当前工作目录是home,输入“cd /”,可以切换到根目录下,在根目录下输…