SQL中大概有这么几种JOIN:
cross join
inner join
left outer join
right outer join
full outer join
首先都是基于cross join(笛卡尔乘积),然后是inner join,在笛卡尔乘积的结果集中去掉不符合连接条件的行。
left outer join 是在inner join的结果集上加上左表中没被选上的行,行的右表部分每个字段都用NUll填充。
right outer join 是在inner join的结果集上加上右表中没被选上的行,行的左表部分全用NULL填充。
SQL 之JOIN 用法完全版
一、各种JOIN的含义
SQL中大概有这么几种JOIN:
cross join
inner join
left outer join
right outer join
full outer join
首先都是基于cross join(笛卡尔乘积),然后是inner join,在笛卡尔乘积的结果集中去掉不符合连接条件的行。
left outer join 是在inner join的结果集上加上左表中没被选上的行,行的右表部分每个字段都用NUll填充。
right outer join 是在inner join的结果集上加上右表中没被选上的行,行的左表部分全用NULL填充。
outer的意思就是"没有关联上的行"。
二、旧式写法和标准写法:
1、INNER Join code as the following:
Select * from A a, B b where a.categoryID = b.categoryID;
Equals:
Select * from A a inner join B b on a.categoryID = b.categoryID;
2、OUTER Join code as the following
select * from A a full(left/right) outer join B b on a on a.categoryID = b.categoryID;
Equals::
Select * from A a, B b where a.categoryID *= b.categoryID;
Select * from A a, B b where a.categoryID =* b.categoryID;
三、例子
Table A have 12( 8+4) entries, 8 entries have valid relation with B
Table B have 80(77+3) entries , 77 entries have valid relation with A.
then the return amount of join is :
cross join : 12*80
inner join : 77
full outer join : 77+4+3
left outer join: 77 + 4
right outrer join: 77 + 3
分享到:
相关推荐
在这个“SQL之JOIN用法完全版”中,我们将深入探讨JOIN的不同类型及其应用。 1. **INNER JOIN**: INNER JOIN返回两个表中匹配的行。这意味着只有当第一个表中的某行与第二个表中的某行在指定的列上具有相同的值时...
《SQL完全手册完整版》是一本全面而深入的SQL学习资料,旨在帮助读者掌握SQL语言的核心概念、特性和实际应用。SQL(Structured Query Language),即结构化查询语言,是用于管理关系数据库的标准语言,它的应用广泛...
"dpinst.xml"可能是一个安装或配置文件,而"SQL入门经典(第5版)(电子书 文字版 完整版)Ryan Stephens"则很可能是本书的电子版内容,读者可以从中获取更详细的教程和示例。 总之,这本书适合想要踏入SQL世界的新手...
《SQL反模式(中文完整版)》这本书可能涵盖了以下一些常见的SQL反模式: 1. **过度依赖动态SQL**:在编程时,过度使用字符串拼接生成SQL语句可能导致SQL注入攻击,同时也降低了代码的可读性和可维护性。最佳实践是...
《SQL完全手册 中文第二版》是一本深入探讨SQL语言的权威指南,旨在帮助广泛的读者群体,包括数据库用户、数据处理专家、程序员以及数据库管理员,提升他们在SQL编程和优化方面的技能。这本书也是学习数据库和SQL的...
根据提供的标题、描述和标签,本文将围绕《Effective MySQL之SQL语句最优中文版完整版电子书》这一核心内容展开,深入探讨与MySQL和SQL语句优化相关的知识点。 ### MySQL简介 MySQL是一种广泛使用的开源关系型...
- 执行计划:展示数据库如何执行SQL,包括表扫描方式、索引使用、JOIN顺序等。 - 性能分析:提供查询执行时间和资源消耗,指导优化。 - 参数绑定:模拟不同参数值下的查询行为,评估参数化查询的性能。 - 代码格式化...
在当今的数据驱动世界里,掌握SQL是每一个数据分析师、数据库管理员和程序员必备的技能之一。以下将详细阐述《Head First SQL》中可能涉及的一些核心知识点: 1. 数据库基础:首先,书中会介绍数据库的基本概念,...
中文版的SQL教程会详细解释这些语句的用法,帮助读者理解如何进行数据查询、插入、修改和删除。 2. **数据库操作**:SQL不仅用于查询,还可以用于创建、修改和删除数据库表结构。例如,CREATE TABLE用于新建表,...
本资源“SQL Server数据库开发实例解析完整版”提供了丰富的实践案例,帮助开发者深入理解并掌握SQL Server的数据库开发技术。以下是根据标题、描述以及压缩包中的文件名称,提炼出的相关知识点: 1. SQL Server...
9. **错误处理和日志记录**:学习如何在T-SQL中处理运行时错误,使用TRY-CATCH结构进行异常处理,以及日志记录的方法。 10. **性能优化**:探讨查询优化器的工作原理,如何使用索引提高查询性能,以及分析查询执行...
本书的第三版对SQL进行了全面而精炼的阐述,旨在帮助读者迅速掌握和应用SQL。 1. **SQL基础** - 数据库概念:理解关系数据库模型,包括表、字段、记录和键的概念。 - SQL语句结构:学习SELECT、INSERT、UPDATE、...
《SQL参考手册中文版》是IT领域中一本重要的参考资料,主要涵盖了SQL(Structured Query Language)语言的各种概念、语法和操作。SQL是用于管理和处理关系数据库的标准编程语言,它在数据查询、更新、插入和删除等...
《SQL参考手册》中文版是一本非常实用的数据库查询语言工具书,专为SQL学习者和使用者设计。这本书详尽地介绍了SQL的各种功能和用法,帮助用户在实际操作中快速解决问题。SQL(Structured Query Language),即结构...
8. **触发器**:解释触发器的工作原理,以及何时在数据库设计中使用它们来实现数据完整性或自动操作。 9. **索引和性能优化**:探讨索引的类型、创建和维护,以及如何通过索引来提升查询性能。 10. **错误处理与...
SQL(Structured Query Language)是用于管理和处理关系数据库的标准编程语言,它被广泛应用于数据查询...在“SQL经典实例.pdf”中,你将找到更具体的问题解决方法和示例,这将有助于你在实际工作或学习中提升SQL技能。
《SQL学习指南(第二版)》是一本专为初学者设计的数据库技术教程,它全面地涵盖了SQL(Structured Query Language)的基本概念、语法和实际应用。SQL是用于管理和处理关系数据库的强大工具,无论是在企业数据管理...
这些基本操作是T-SQL的基石,理解它们的用法和组合是每个数据库开发者的必修课。 2. **聚合函数与分组**:GROUP BY和HAVING子句用于数据汇总,COUNT、SUM、AVG、MIN和MAX等聚合函数则用于计算统计信息。 3. **联接...
《Head First SQL》的特点在于其丰富的图表、幽默的插图和互动式的教学方法,使学习过程更加生动有趣。无论你是初学者还是希望巩固SQL知识的开发者,这本书都能为你提供深入的理解和实用的技巧。通过阅读本书,你将...
本资料“SQL语法大全中文版”提供了SQL语言的基础到高级用法,旨在帮助用户更好地理解和操作数据库。下面将详细阐述SQL的一些关键知识点。 1. **SQL基本概念** - **数据库**:存储数据的结构化系统,由一个或多个...