SQL基础教程(第2版)第7章 集合运算:7-2 联结(以列为单位对表进行联结)

时间:2021-09-05 02:22:19

7-2 联结(以列为单位对表进行联结)


外联结——OUTER JOIN
3张以上的表的联结
交叉联结——CROSS JOIN
联结的特定语法和过时语法

联结( JOIN)就是将其他表中的列添加过来,进行“添加列”的集合运算。UNION是以行(纵向)为单位进行操作,而联结则是以列(横向)为单位进行的。

请大家一定要使用标准SQL的语法格式来写联结运算,对于那些过时的或者特定SQL中的写法,了解一下即可,不建议使用。

什么是联结
SQL基础教程(第2版)第7章 集合运算:7-2 联结(以列为单位对表进行联结)

 

 ■内联结——INNER JOIN

首先我们来学习内联结( INNER JOIN,它是应用最广泛的联结运算。 
本例中我们会继续使用Product 表和第 6 章创建的ShopProduct表。下面我们再来回顾一下这两张表的内容。 
SQL基础教程(第2版)第7章 集合运算:7-2 联结(以列为单位对表进行联结)

SQL基础教程(第2版)第7章 集合运算:7-2 联结(以列为单位对表进行联结)SQL基础教程(第2版)第7章 集合运算:7-2 联结(以列为单位对表进行联结)

SQL基础教程(第2版)第7章 集合运算:7-2 联结(以列为单位对表进行联结) 

试着从 Product 表中取出商品名称(product_name)和销售单价(sale_price),并与ShopProduct 表中的内容进行结合,所得到的结果如下所示。

SQL基础教程(第2版)第7章 集合运算:7-2 联结(以列为单位对表进行联结)
SQL基础教程(第2版)第7章 集合运算:7-2 联结(以列为单位对表进行联结)
由于表名太长会影响 SQL 语句的可读性,因此还是希望大家能够习惯使用别名。

SQL基础教程(第2版)第7章 集合运算:7-2 联结(以列为单位对表进行联结)
像这样使用联结运算将满足相同规则的表联结起来时, WHERE、GROUP BY、 HAVING、 ORDER BY 等工具都可以正常使用。我们可以将联结之后的结果想象为新创建出来的一张表(表 7-4) 
如果希望继续使用这张“表”,还是将它创建成视图吧。