在sql中使用内部联接对多个表中的数据进行分组的指南

关系数据库是许多业务的一个稳定的组成部分。它们是用一种称为结构化查询语言(SQL)的计算机语言创建的。如果使用关系数据库,有时会检查或收集位于数据库多个表中的数据。...

关系数据库是许多业务的一个稳定的组成部分。它们是用一种称为结构化查询语言(SQL)的计算机语言创建的。如果使用关系数据库,有时会检查或收集位于数据库多个表中的数据。

Closeup of a pencil and a database diagram

什么是sql连接语句(an sql join statement)?

SQL JOIN语句使连接两个或多个表成为可能,通常基于相关列,以便将数据视为位于一个表中。联接不会改变表本身。

SQL连接是灵活和功能性的。尽管有几种类型的联接,但内部联接是最容易理解和使用的联接之一。下面的SQL语句演示了如何使用内部联接组合来自三个不同表的结果。

内部连接示例

例如,以一个表中包含驾驶员的表和第二个表中包含车辆匹配的表为例。内部连接发生在车辆和驾驶员位于同一城市的地方。内部联接从两个表中选择包含位置列之间匹配的所有行。

在驾驶员和车辆位于同一城市的情况下,下面的SQL语句结合了驾驶员和车辆表中的数据:

SELECT lastname, firstname, tagFROM drivers, vehiclesWHERE drivers.location = vehicles.location

此查询生成以下结果:

lastname firstname tag-------- --------- ---Baker Roland H122JMSmythe Michael D824HASmythe Michael P091YFJacobs Abraham J291QRJacobs Abraham L990MT

现在,扩展此示例以包括第三个表。要仅包括周末开放地点的驾驶员和车辆,请通过扩展JOIN语句将第三个表带入查询,如下所示:

SELECT lastname, firstname, tag, open_weekendsFROM drivers, vehicles, locationsWHERE drivers.location = vehicles.locationAND vehicles.location = locations.locationAND locations.open_weekends = 'Yes'

此查询生成以下结果:

lastname firstname tag open_weekends-------- --------- --- -------------Baker Roland H122JM yesJacobs Abraham J291QR yesJacobs Abraham L990MY yes

这个对基本SQL JOIN语句的强大扩展以复杂的方式组合数据。除了将表与内部联接相结合外,该技术还将多个表与其他类型的联接相结合。

其他类型的联接

当表具有匹配的记录时,可以使用内部联接,但有时一个表没有构建联接所基于的数据的相关记录,因此查询失败。这种情况需要外部联接,其中包括一个表中存在的结果,但在联接表中没有相应的匹配项。

此外,您可以根据具体情况选择使用不同类型的联接。其他类型的联接包括:

  • 左外部联接(左联接):包含左表中的每条记录,即使右表没有匹配的记录。
  • 右外部联接(Right join):返回右表中的所有相关信息,即使左表没有匹配项。
  • 完全联接:选择两个表中的所有记录,无论它们是否具有匹配的联接条件。

  • 发表于 2021-09-08 03:20
  • 阅读 ( 137 )
  • 分类:数学

你可能感兴趣的文章

sql语言(sql)和mysql数据库(mysql)的区别

...存储数据的数据库类型。这些表是相互关联的,因为它们使用约束。MySQL是一个关系数据库管理系统。用于对数据库执行操作的语言称为SQL。SQL与MySQL的主要区别在于SQL是一种管理关系数据库中数据的语言,MySQL是一种开源的关系...

  • 发布于 2020-10-17 12:07
  • 阅读 ( 252 )

内部联接(inner join)和自然连接(natural join)的区别

...表示id、name、grade、age等属性。DBMS是表的集合,每个表都使用诸如外键之类的约束进行关联。有时仅仅使用一个表是不够的。有些情况下需要使用多个表。要组合两个表,至少有一列是公共的。表的组合称为联接。 目录 1. 概述...

  • 发布于 2020-10-18 12:15
  • 阅读 ( 1704 )

哪里(where)和sql中的having子句(having clause in sql)的区别

...件从表中检索、更新或删除一组特定的数据。程序员可以使用where子句来限制和获取所需的数据。查询只对where子句指定的条件为true的记录执行。它可以与select、update和delete一起使用。   参考下面的学生表, 要选择student_id等于...

  • 发布于 2020-10-24 02:15
  • 阅读 ( 237 )

所有程序员都应该知道的13条最重要的sql命令

...库驱动着现代网络。每个大的或动态的网站都以某种方式使用数据库,当与结构化查询语言(SQL)结合使用时,操纵数据的可能性真的是无穷无尽。如果您已经知道SQL,请确保您检查了所有网站开发人员都应该知道的编程技能。...

  • 发布于 2021-03-14 06:57
  • 阅读 ( 225 )

如何使用sql连接一次查询多个数据库表

使用MySQL等关系数据库的最大好处之一是,它的关系结构允许您轻松地跨多个表存储和查询信息。 ...

  • 发布于 2021-03-27 04:02
  • 阅读 ( 300 )

参加(join)和内部连接(inner join)的区别

...们是以列和行的形式保存数据的实际单个单元。每个表都使用一个标识符键来构造,该标识符键对于每一行都是唯一的。我们所有的操作都是基于这些键-你可以通过进一步阅读来学习如何使用它们。在我们继续讨论差异之前,...

  • 发布于 2021-06-24 03:08
  • 阅读 ( 220 )

数据库(database)和数据仓库(data warehouse)的区别

...组成部分。它为分析查询提供了高性能。通常,管理社区使用数据仓库。 覆盖的关键领域 1.什么是数据库-定义,功能2.什么是数据仓库-定义,功能3.数据库和数据仓库的区别-关键区别比较 关键术语 数据库、数据仓库、DBMS 什...

  • 发布于 2021-06-30 17:27
  • 阅读 ( 300 )

删除(delete)和截断(truncate)的区别

...语言(DDL)命令。 where子句 此外,还可以在delete命令中使用where子句来过滤和删除记录。但是,不能将where子句与truncate命令一起使用。 执行速度 执行速度是delete和truncate之间的另一个区别。由于delete命令维护日志,所以速度很...

  • 发布于 2021-07-01 07:59
  • 阅读 ( 246 )

插入(insert)和在sql中更新(update in sql)的区别

...有助于更改表的现有记录。我们可以将它与WHERE子句一起使用来更改一个或多个特定的记录。 以下报表将员工3部门改为销售部。 更新emp\u id=3的employee SET department='Sales'; 现在表格如下。 此外,还可以更改多列的值。 更新employ...

  • 发布于 2021-07-01 13:42
  • 阅读 ( 243 )

sql语句(sql)和tsql公司(tsql)的区别

...。它将数据存储在表中,这些表彼此关联。开发人员可以使用SQL语言对RDBMS执行操作。此外,TSQL是SQL的扩展版本。 覆盖的关键领域 1.什么是SQL–定义,功能2.什么是TSQL–定义,功能3.SQL和TSQL的区别是什么–关键区别的比较 关键...

  • 发布于 2021-07-01 14:22
  • 阅读 ( 553 )
q0d70y29
q0d70y29

0 篇文章

相关推荐