CROSS APPLY和OUTER APPLY如何实现关联查询?

2026-06-11 10:412阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1090个文字,预计阅读时间需要5分钟。

CROSS APPLY和OUTER APPLY如何实现关联查询?

在开发过程中,经常遇到大量查询需求,首先会想到使用INNER JOIN或LEFT OUTER JOIN等。但有时这两种查询无法满足需求。例如,当左表一条记录对应右表多条记录时,需要控制右表的具体条目。

日常开发中遇到多表查询时,首先会想到 INNERJOIN 或 LEFTOUTERJOIN 等等,但是这两种查询有时候不能满足需求。比如,左表一条关联右表多条记录时,我需要控制右表的某一条或

日常开发中遇到多表查询时,首先会想到 INNER JOIN 或 LEFT OUTER JOIN 等等,但是这两种查询有时候不能满足需求。比如,左表一条关联右表多条记录时,我需要控制右表的某一条或多条记录跟左表匹配。貌似,INNER JOIN 或 LEFT OUTER JOIN 不能很好完成。但是 CROSS APPLY 与 OUTER APPLY 可以,下面用示例说明。

 

 

 

 

 

 

1) 查询每个学生最近两次的考试成绩

先试下 INNER JOIN

1) SQL 代码

SELECT T1.StudentNo, T1.Name, T2.ExamScore, T2.ExamDate FROM Student AS T1

INNER JOIN Score AS T2 ON T1.StudentNo = T2.StudentNo

2) 结果:

 

 

 

 

3) 咦,不对,这不是我想要的结果。

阅读全文

本文共计1090个文字,预计阅读时间需要5分钟。

CROSS APPLY和OUTER APPLY如何实现关联查询?

在开发过程中,经常遇到大量查询需求,首先会想到使用INNER JOIN或LEFT OUTER JOIN等。但有时这两种查询无法满足需求。例如,当左表一条记录对应右表多条记录时,需要控制右表的具体条目。

日常开发中遇到多表查询时,首先会想到 INNERJOIN 或 LEFTOUTERJOIN 等等,但是这两种查询有时候不能满足需求。比如,左表一条关联右表多条记录时,我需要控制右表的某一条或

日常开发中遇到多表查询时,首先会想到 INNER JOIN 或 LEFT OUTER JOIN 等等,但是这两种查询有时候不能满足需求。比如,左表一条关联右表多条记录时,我需要控制右表的某一条或多条记录跟左表匹配。貌似,INNER JOIN 或 LEFT OUTER JOIN 不能很好完成。但是 CROSS APPLY 与 OUTER APPLY 可以,下面用示例说明。

 

 

 

 

 

 

1) 查询每个学生最近两次的考试成绩

先试下 INNER JOIN

1) SQL 代码

SELECT T1.StudentNo, T1.Name, T2.ExamScore, T2.ExamDate FROM Student AS T1

INNER JOIN Score AS T2 ON T1.StudentNo = T2.StudentNo

2) 结果:

 

 

 

 

3) 咦,不对,这不是我想要的结果。

阅读全文