`
geeksun
  • 浏览: 965149 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

复杂的左连接查询

 
阅读更多

一。查询A表的所有字段,还要查询和A表关联的B表的C字段的个数,条件是A.Fnum=B.Cnum



在上例中,学习人数和完成人数之前的字段都是A表的字段,学习人数和完成人数需要关联查询B表。

 

select FCOURSEWARE_NAME,fid ,fcourseware_type ,ftime_long ,flanguages ,fowner ,fcontributor ,fon_line_time,stu.sc,s.c,fstate

from COURSEWARE c left join (select count(1) as sc,course_number from user_course_study_info where course_number is not null group by course_number ) stu 

on stu.course_number = c.fcourse_id left join (select count(1) as c,course_number from user_course_study_info where BROWSE_SCORE=100 and course_number is not null group by course_number) s

on s.course_number = c.fcourse_id

 

二。 查A的记录时,同时要查询出和A关联的C表总记录数,C表不直接和A表关联,C表和B表是多对一,B和A是多对一。同时也要查出D表和A对应的记录数,D表和A表关联。

select * from (select t.fid,
                       t.fcourse_code,
                       t.fcourse_name,
                       t.funit,
                       t.flevel,
                       t.FCREATETIME,
                       sum(arr.tc) as tc,
                       sum(choose.tc2) as tc2
                  from course_info t left join (select count(1) as tc,
                                                       fid,
                                                       fcourse_id
                                                  from teach_arrangement
                                                 group by fid, fcourse_id) arr on arr.fcourse_id = t.fid left join (select count(1) as tc2,
                                                                                                                           FTEACH_ARRANGEMENT_ID
                                                                                                                      from TEACHPLAN_STUDENT_CHOOSE
                                                                                                                     group by FTEACH_ARRANGEMENT_ID) choose on choose.FTEACH_ARRANGEMENT_ID = arr.fid
                 group by t.fid,
                          t.fcourse_code,
                          t.fcourse_name,
                          t.funit,
                          t.flevel,
                          t.FCREATETIME) temp left join (select count(1) as tc3,
                                                                fcourse_id
                                                           from courseware
                                                          group by fcourse_id) ware on ware.fcourse_id = temp.fid

 

查询结果如下:

  

 
  • 大小: 137.4 KB
  • 大小: 63.7 KB
分享到:
评论

相关推荐

    左连接和右连接

    在数据库管理与操作中,左连接(Left Join)和右连接(Right Join)是SQL查询语句中的两种重要连接类型,它们主要用于从两个或多个表中检索数据,特别是在处理复杂的数据关系时,这两种连接方式提供了灵活且强大的...

    Gbase 8s查询之连接查询

    Gbase 8s 查询之连接查询 Gbase 8s 查询之连接查询是关系数据库中的一种强大...Gbase 8s 查询之连接查询是关系数据库中的一种强大处理能力,能够将不同的数据按一定条件连接在一起,实现复杂的数据分析和 reporting。

    左外连接右外连接,内连接区别

    在数据库查询中,连接操作是将两个或多个表的数据结合在一起的关键方法。本文将深入探讨三种主要的连接类型:左外连接、右外...了解这些基本的连接类型及其差异,对于优化 SQL 查询和处理复杂的数据库关系至关重要。

    数据库连接查询、子查询

    连接查询可以分为内连接、左连接、右连接、全连接等几种类型。内连接是指返回两个表中公共部分的记录。左连接是指返回左表中的所有记录,并从右表中检索匹配的记录。右连接是指返回右表中的所有记录,并从左表中检索...

    oracle数据库 左连接 右连接 自连接 。。

    这里主要涉及三种类型的连接:左连接、右连接和自连接。理解这些连接方式对于有效地管理和查询数据库至关重要。 1. **左连接(Left Join)**: 左连接返回左表(也就是连接操作中指定的第一个表)的所有记录,以及...

    Oracle左右连接及一些练习资料

    总的来说,这些练习资料提供了一个全面的学习路径,从基础的SQL语法到Oracle数据库的特定操作,再到复杂的连接查询。通过系统地学习和实践,你可以深入理解Oracle数据库的工作原理,提升数据库管理和开发的技能。...

    C#使用左外连接查询数据 

    本文将深入探讨如何在C#中使用ADO.NET或Entity Framework等库来执行左外连接查询。 首先,了解左外连接的基本原理至关重要。左外连接返回左侧表格的所有记录,并与右侧表格的匹配记录相结合。如果右侧表格没有匹配...

    SQL_左外连接_右外连接_全连接_内连接

    SQL中的连接操作是数据库查询中不可或缺的部分,它们用于合并来自两个或更多表的数据。以下是关于SQL连接的不同类型...理解这些连接类型对于编写复杂的SQL查询至关重要,可以帮助你有效地提取和分析数据库中的数据。

    SQL左连接,右连接,内连接,交叉连接,自连接

    根据连接的方式不同,可以分为左连接(LEFT JOIN)、右连接(RIGHT JOIN)、内连接(INNER JOIN)、全连接(FULL JOIN)、交叉连接(CROSS JOIN)以及自连接(SELF JOIN)。每种连接类型都有其特定的应用场景和使用...

    Oracle外连接查询

    Oracle的外连接查询是数据库操作中的重要组成部分,它允许用户获取来自两个或更多表的数据,即使在某些情况下,这些表之间的连接条件不完全匹配。在理解外连接查询之前,我们首先要了解内连接,即最基础的相等连接。...

    数据库实验报告——数据库的简单查询和连接查询

    - 外连接(左连接、右连接)和内连接,以满足特定查询需求,如查找所有学生及其选修课程,或者找到选修特定课程且成绩高于90分的学生。 在提高操作实验中,创建了职工部门库和相关表,然后通过SQL语句实现职工和...

    SQL连接查询语句实例

    总之,SQL连接查询是数据处理的核心部分,它使我们能够从多个表中获取复杂的数据组合。理解并熟练运用内连接、外连接和交叉连接对于任何数据库开发者来说都是至关重要的。通过实践和实验,你可以更好地掌握这些概念...

    SQL子查询、内连接和外连接查询

    【SQL子查询、内连接和外连接查询】 在SQL中,子查询、内连接和外连接是进行复杂数据检索的关键工具。这些概念的理解和熟练应用对于数据库管理与数据分析至关重要。 **子查询** 是一个嵌套在其他SQL语句中的查询,...

    数据库连接查询相关外连接内连接

    更复杂的查询涉及到多表,这时就需要使用到连接查询。连接查询主要有三种类型:内连接、外连接和交叉连接。 1. **内连接**(Inner Join):返回两个表中匹配的行。例如,找出供应商和他们销售的零件: ```sql ...

    oracle左右连接方法

    执行左连接查询: ```sql SELECT * FROM a LEFT JOIN b ON a.id = b.id; ``` 等效于Oracle特有的写法: ```sql SELECT * FROM a, b WHERE a.id = b.id(+); ``` 结果如下: | ID (a) | ID (b) | |--------|-----...

    数据库多表连接查询详解

    数据库多表连接查询详解 连接查询是关系数据库管理系统中的一种重要查询方式,它允许用户从多个表中检索数据,并将它们组合成一个结果集。连接查询的基本思想是通过连接运算符在多个表之间建立关系,从而实现数据的...

    第十一章连接查询和分组查询.zip

    在SQL(结构化查询语言)中,连接查询和分组查询是两个非常重要的概念,用于处理和分析数据库中的数据。本章将详细讲解这两个概念及其应用。 首先,我们来看连接查询。连接查询允许我们将多个表的数据结合在一起,...

    数据库系统概论数据查询之连接查询.pdf

    在数据查询过程中,连接查询允许我们从一个或多个表中提取相关联的信息,以满足复杂的业务需求。以下是对连接查询的详细解释: 1. **等值连接**:等值连接是最常见的连接类型,通过比较不同表中的相同列的值来连接...

    复杂查询书籍

    在《复杂查询书籍》这一章节中,作者深入探讨了关系型数据库中一个非常重要的主题:连接查询。这一技术对于理解和实现高效的数据检索至关重要,尤其是在Oracle数据库环境中。本文将详细解析书中提及的关键概念,并...

    数据库实验报告-数据库的简单查询和连接查询

    - **内外连接操作**:使用SQL语句实现职工和部门表之间的内连接、左外部连接和右外部连接,掌握不同类型的连接查询。 ### 实验环境 - **硬件条件**:个人计算机。 - **软件条件**:Windows XP操作系统,SQL Server...

Global site tag (gtag.js) - Google Analytics