zoukankan      html  css  js  c++  java
  • SQL语句(十三)多表查询

    多表查询

    1. 笛卡尔乘积

    • 简单格式

      SELECT * 或字段列表

      FROM 数据表列表

    • 实例

    --1. 笛卡尔乘积 (五条件的连接--很多条件无意义)
    Select *
    from Student, SC

    2. 等值连接

    -- 查询选课的学生全部信息
    SELECT *
    From Student, SC
    where Student.Sno = SC.Sno

    3. 不等值连接

    select numb, cnumb, score, grade
    from score, grade
    where score.score between grade.gstart and grade.gend

    4. 使用INNER JOIN (内连接, 匹配项)

    Select * 或字段列表

    From 表1

    INNER JOIN 表2 ON 连接规则1

    INNER JOIN 表3 ON 连接规则2

    ...

    [WHERE 条件]

    [ORGER BY]

    --7. 使用INNER JOIN
    -- (1)
    select *
    from score
    INNER JOIN stu1 on score.numb = stu1.numb
    
    -- (2)
    select *
    from score, stu1, course
    where score.numb = stu1.numb
    and   score.cnumb = course.cnumb
    and   stu1.name = '王宁'
    order by course.cname, score.score
    
    -- 用 INNER 改写(2)
    select *
    from score
    INNER JOIN stu1 on score.numb = stu1.numb
    INNER JOIN course ON score.cnumb = course.cnumb
    where stu1.name = '王宁'   --将where里面条件放到了INNER里面  
    ORDER BY course.cname, score.score

    5. 外连接OUTER JOIN (能够查到不匹配项)

    • 按连接条件得到结果

    • 内连接

    左外连接 LEFT OUTER JOIN

    • 查找左边表的不匹配项

      SELECT * | 字段列表

      FROM 表1

      LEFT OUTER JOIN 表2 ON 条件

      左表与表2没有对应项的话,左边表的记录显示出来

    右外连接RIGHT OUTER JOIN

    • 查找右边表的不匹配项

      SELECT * | 字段列表

      FROM 表1

      RIGHT OUTER JOIN 表2 ON 条件

      左表与表2没有对应项的话,表2 的记录显示出来

    --8. 外连接OUTER JOIN
    -- 查询所有同学的学生信息 和 选课信息(选课的列出课程编号和成绩,
    -- 没有选课的这两项为NULL)
    select *
    from stu1
    --左外连接,左边表里的,也就是stu1这个表里头的不匹配项也显示出来
    LEFT OUTER JOIN score on stu1.numb = score.numb
    
    --或者是
    select *
    from score
    --右外连接,右边表里的,也就是这个score表里头的不匹配项也显示出来
    LEFT OUTER JOIN score on stu1.numb = score.numb

    多表连接查询

    • 笛卡尔乘积

    • 等值连接

    • 不等值连接

    • 内连接、外连接

      SELECT *

      FROM 表1

      [INNER JOIN 表2 ON 条件 ] |

      [LEFT | RIGHT OUTER JOIN 表2 ON 条件 ]

      [WHERE 条件]

      [GROUP BY 字段列表]

      [HAVING 条件]

      [ORDER BY 条件]

  • 相关阅读:
    国内大公司的开源项目( 阿里 腾讯 百度 新浪 搜狐 豆瓣 大众点评)
    开源镜像站点
    存储入门知识
    oceanbase开源 微博
    PS中矢量形状图层的合并交叉等运算
    .NET下载文件报错System.UnauthorizedAccessException的解决方法
    ManualResetEvent
    修改IIS7并发连接数目限制
    C#中如何判断线程当前所处的状态
    Bean复制的几种框架性能比较(Apache BeanUtils、PropertyUtils,Spring BeanUtils,Cglib BeanCopier)
  • 原文地址:https://www.cnblogs.com/douzujun/p/6626510.html
Copyright © 2011-2022 走看看