SQL学习笔记-表连接

1.内连接  [inner]  join

   通过比较被联接的表所共有的字段,把多个表联接起来

   select   列名 from  表名1  [inner]  join 表名2 on 表名1.列名 <比较运算符> 表名2.列名

 

2.左外连接 left [outer] join

   左外联接的结果表中除了满足连接条件的行,还包括左表中的所有剩余行,
  但不包括右表中的不匹配行,使用左外联接时,请注意:

   (1)不满足联接条件的记录将显示空值
   (2)左联接可以显示左表中所有记录
   (3)可以把 LEFT OUTER JOIN 简写为 LEFT JOIN

select  列名 from 表名1 left [outer] join 表名2  on 表名1.列名 <比较运算符> 表名2.列名

3.右外连接 right  [outer]  join

   右外联接结果表中除了满足连接条件的行,还包括右表中的所有剩余行,
   但不包括左表中的不匹配行,使用右外联接时,请注意:
   (1)不满足联接条件的记录将显示空值
   (2)右联接可以显示右表中所有记录
   (3)可以把 RIGHT OUTER JOIN 简写为 RIGHT JOIN

  select  列名 from 表名1  right  [outer]  join 表名2  on  表名1.列名 <比较运算符> 表名2.列名

 

4.完整外连接, full [outer] join

   即左右外连接的结合

  select 列名 from 表名1  full [outer]  join 表名2  on  表名1.列名 <比较运算符> 表名2.列名 

 

5.交叉链接,即返回笛卡尔积 cross join

select  列名 from 表名1 cross join 表名2

 

6.自连接(self-join)

 使用自联接,可以查询一个表中各记录之间的关系
 使用自联接时,应注意:
  (1)引用表的两份副本时,必须使用表的别名
  (2)生成自联接时,表中每一行都和自身比较一下,并生成重复的记录,
  (3)使用 WHERE 子句来消除这些重复记录

posted @   kumat  阅读(319)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示