TOP

SQL 第 10 课。连接表 (INNER JOIN)

SQL 语言最强大的功能是能够在查询执行期间组合 DBMS RAM 中的不同表。连接经常用于数据分析。通常,数据位于不同的表中,这使得它们可以更有效地存储(因为信息不重复),简化数据处理,并允许扩展数据库(可以添加带有附加信息的新表) 。

DBMS MS Access 中使用的数据库表是关系表,即所有表都可以通过公共字段相互链接。


1. 创建组合表(JOINS)

组合表格是一个非常简单的过程。有必要指定将包含在组合中的所有表,并向 DBMS“解释”它们如何相互关联。使用单词 WHERE 建立连接,例如:

Run SQLSELECT DISTINCT Seller_name, Product 
FROM Sellers, Sumproduct 
WHERE Sellers.City = Sumproduct.City

通过合并这两个表,我们能够看到每个卖家销售哪些产品。让我们仔细看看请求代码,因为它与普通请求略有不同。 SELECT 语句首先指定我们要显示的列,但这些字段位于不同的表中,FROM 子句包含我们要在 SELECT 语句中联接的两个表,这些表使用 WHERE 单词联接,该单词指定列加入。您必须指定字段的全名 (Table.Field),因为字段 City 位于两个表中。

2.内部组合(INNER JOIN)

在前面的示例中,我们使用单词 WHERE 来组合表,它根据两个表的等效性执行检查。这种类型的组合也称为“内部组合”。还有另一种组合表的方式,可以清楚地表明组合的类型。考虑以下示例:

Run SQLSELECT DISTINCT Seller_name, Product 
FROM Sellers 
INNER JOIN Sumproduct 
ON Sellers.City = Sumproduct.City

在此查询中,我们使用结构 INNER JOIN ... ON ... 代替 WHERE,这给出了类似的结果。尽管与 WHERE 子句的组合较短,但使用 INNER JOIN 仍然更好,因为它更灵活,这将在以下各节中更详细地解释。