使用SQL中的内连接到来自多个表的数据的指南

SQL Join语句可以从2个或更多表组合在一起数据

铅笔和数据库图的特写镜头

Slungu / Getty Images

关系数据库是许多业务的稳定性。它们是以一种名为结构化查询语言(SQL)的计算机语言创建的。如果你与关系合作数据库,您偶尔会检查或收集位于数据库的多个表中的数据。

什么是SQL Join声明?

SQL JOIN语句使得可以加入两个或更多表,通常基于相关列,以便数据被视为位于一个表中。桌子本身不会被加入改变。

SQL加入是灵活的功能。虽然有几种类型的连接,但内部连接是最容易理解和使用的连接之一。请查看以下SQL语句,说明如何使用内部连接组合三个不同表的结果。

内部连接示例

例如,采取包含驱动程序的表在一张桌子和车辆比赛中。车辆和驾驶员位于同一城市的内部连接发生。内连接从两个包含位置列之间的表中选择所有行。

下面的SQL语句将驱动器和车辆表中的数据组合在驾驶员和车辆位于同一城市的情况下:

选择LastName,FirstName,标记
从司机,车辆
drivers.location =车辆.Location

此查询会产生以下结果:

LastName FirstName标签
-------- ----------
面包师罗兰H122JM
Smythe Michael D824Ha.
Smythe Michael P091YF.
雅各布亚伯拉罕J291QR.
雅各布亚伯拉罕L990MT

现在,将此示例扩展为包括第三表。仅包含在周末开放的位置的司机和车辆存在,通过扩展Join语句,将第三表带入查询,如下所示:

选择LastName,FirstName,Tag,Open_Weekends
从司机,车辆,地点
drivers.location =车辆.Location
和车辆.Location = locations.location
和locations.open_weekends ='是'

此查询会产生以下结果:

LastName FirstName Tag Open_Weekends
-------- --------- --------------
Baker Roland H122JM是的
雅各布亚伯拉罕J291QR是的
雅各布斯亚伯拉罕L990MY是的

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

其他类型的联合

当表有匹配的记录时,内连接是要转移的方式,但有时一个表没有建立连接的数据的相关记录,因此查询失败。这个案例要求外套加入,其中包括在一个表中存在的结果,但在加入的表中没有相应的匹配。

此外,您可以选择使用不同类型的加入,具体取决于情况。这些其他类型的联合是:

  • 左外连接(左连接):即使右表没有匹配记录,也包含左侧表中的每个记录。
  • 右外连接(右连接):即使左表没有匹配,也可以从右侧表返回所有相关信息。
  • 全加入:无论是否具有匹配的连接条件,请从两个表中选择所有记录。
此页面是否有帮助?