现在我们介绍连接(join)的概念。要了解连接,我们需要用到许多我们之前已介绍过的指令。 我们先假设我们有以下的两个表格,
Store_Information 表格
store_name |
Sales |
Date |
Los Angeles |
$1500 |
Jan-05-1999 |
San Diego |
$250 |
Jan-07-1999 |
Los Angeles |
$300 |
Jan-08-1999 |
Boston |
$700 |
Jan-08-1999 |
|
Geography 表格
region_name |
store_name |
East |
Boston |
East |
New York |
West |
Los Angeles |
West |
San Diego |
|
而我们要知道每一区 (region_name) 的营业额 (sales)。 Geography 这个表格告诉我们每一区有哪些店,而 Store_Information 告诉我们每一个店的营业额。 若我们要知道每一区的营业额,我们需要将这两个不同表格中的资料串联起来。当我们仔细了解这两个 表格后,我们会发现它们可经由一个相同的栏位,store_name,连接起来。我们先将 SQL 句列出, 之后再讨论每一个子句的意义:
SELECT A1.region_name REGION, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.store_name = A2.store_name
GROUP BY A1.region_name
结果:
REGION |
SALES |
East |
$700 |
West |
$2050 |
在第一行中,我们告诉 SQL 去选出两个栏位:第一个栏位是 Geography 表格中的 Region_name 栏位 (我们取了一个别名叫做 REGION);第二个栏位是 Store_Information 表格中的 sales 栏位 (别名为 SALES)。请注意在这里我们有用到表格别名:Geography 表格的别名是 A1,Store_Information 表格的别名是 A2。若我们没有用表格别名的话, 第一行就会变成
SELECT Geography.region_name REGION, SUM(Store_Information.Sales) SALES
很明显地,这就复杂多了。在这里我们可以看到表格别名的功用:它能让 SQL 句容易被了解,尤其是这个 SQL 句含盖好几个不同的表格时。
接下来我们看第三行,就是 WHERE 子句。 这是我们阐述连接条件的地方。在这里,我们要确认 Geography 表格中 Store_name 栏位的值与 Store_Information 表格中 store_name 栏位的值是相等的。这个 WHERE 子句是一个连接的灵魂人物,因为它的角色是确定两个表格之间的连接是正确的。如果 WHERE子句是错误的,我们就极可能得到一个笛卡儿连接 (Cartesian join)。笛卡儿连接会造成我们得到所有两个表格每两行之间所有可能的组合。在这个例子中,笛卡儿连接会让我们得到 4 x 4 = 16 行的结果。
分享到:
相关推荐
本文将详细介绍六种主要类型的 JOIN:左连接(LEFT JOIN)、右连接(RIGHT JOIN)、全连接(FULL JOIN)、内连接(INNER JOIN)、交叉连接(CROSS JOIN)以及自连接(SELF JOIN)。通过实例讲解每种连接的特点和应用...
本文将详细解释五种主要的连接类型:外连接(外连接)、内连接(内连接)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)、全连接(FULL JOIN)以及交叉连接(CROSS JOIN)。 1. **内连接(INNER JOIN)**: 内连接...
### SQL内连接与外连接详解 #### 一、SQL内连接(INNER JOIN) **定义**: 内连接(INNER JOIN)是一种最常用的连接方式,它仅返回两个数据集合中具有匹配关系的那些行。具体来说,它会从位于两个互相交叉的数据...
SQL 连接的四种类型:左外连接、右外连接、全连接、内连接 在 SQL 中,连接(JOIN)是一种非常重要的概念,它允许我们从多个表中检索数据。连接可以分为四种类型:左外连接、右外连接、全连接和内连接。每种连接都...
查询语句-内连接外连接的区别 SQL(Structured Query Language),即结构化查询语言,是关系数据库的标准语言。数据库的查询是数据库的核心操作。SQL 查询语句格式主要包括 SELECT、FROM、WHERE、GROUP BY、HAVING...
当我们需要将两个或多个List集合中的元素根据特定条件进行匹配并合并时,可以使用内连接(Inner Join)操作。内连接会返回两个集合中满足指定条件的匹配元素。在C#中,我们可以通过两种方法实现List集合之间的内连接...
本篇文章将深入探讨数据库连接查询,包括内连接、外连接和交叉连接等,同时结合实例来帮助理解。 首先,了解数据库的基础架构。Oracle数据库由Oracle数据库(数据文件、控制文件、重做日志文件等)和Oracle实例...
根据连接的方向和目的,可以分为几种不同的类型:左外连接(LEFT JOIN)、右外连接(RIGHT JOIN)、内连接(INNER JOIN)以及全外连接(FULL JOIN)。下面将详细介绍这四种连接类型,并通过示例来解释它们之间的区别...
本文将深入探讨三种主要的连接类型:左外连接、右外连接和内连接,并通过具体的例子来阐述它们之间的区别。 首先,让我们从内连接(INNER JOIN)开始。内连接返回的是两个表中满足特定连接条件的记录。在示例中,`...
SQL优化--使用内连接(inner join)代替外连接(left join,right join)
SQL 内连接,外连接:假设一堆男女在教堂,有夫妇有单身的,假设男为左表,女为右表......
内连接与外连接的精简写法,可用于sql和hql中,即使hql中两实体不存在实际上的主外键关系,也适用。
学习内连接和外连接的实例,可以很直观的看到他们的区别。
内连接、外连接、左链接、右链接................
根据连接的方式不同,可以分为左连接(LEFT JOIN)、右连接(RIGHT JOIN)、内连接(INNER JOIN)、全连接(FULL JOIN)、交叉连接(CROSS JOIN)以及自连接(SELF JOIN)。每种连接类型都有其特定的应用场景和使用...
对MSSQL中的内连接和外连接所得出的数据集不是很清楚的童鞋可以参考参考
当我们需要从多个表中获取数据并合并它们时,SQL提供了不同类型的连接操作,包括内连接、外连接(左连接和右连接)。以下是这些连接方式的详细说明。 **内连接(Inner Join)** 内连接返回两个表中存在匹配的记录。...
主要分为内连接、外连接和交叉连接,每种连接都有其特定的应用场景和逻辑。 内连接(INNER JOIN)是最常见的连接类型,它返回两个表中列相等的行。在内连接中,查询条件通常基于两个表之间的共同列,只有当这些列的...
1. **内连接(Inner Join)**: 内连接返回两个表中存在匹配的行。这通常通过在`FROM`子句中指定`JOIN`或`INNER JOIN`来实现,比较两个表中的共同列,只返回那些列值匹配的行。例如,在一个`students`和`courses`表...
Oracle PPT 文档\内部连接查询及应用.ppt 。