(10)分组后筛选、笛卡尔积现象、三表连接

本文详细介绍了数据库查询中的分组筛选、笛卡尔积现象及其避免方法,以及三表连接的应用。通过实例展示了如何进行内连接、外连接和全外连接,并解释了各种连接的特点和使用场景。内容涵盖等值连接、非等值连接以及SQL标准的发展历史。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分组后的筛选     GROUP BY 分组后的结果集    GROUP BY之后      having

连接查询:
    含义:(多表查询),当查询的字段来自于多个表时,就会用到连接查询
        
笛卡尔积现象:表1  有m行,表2  有n行, 结果 = m*n行
  发生的原因:没有有效的连接条件
      如何避免:添加有效的连接条件

三表连接:
    需求:查询员工对应的工种名和部门名
select 
last_name,job_title,department_name 
from 
jobs j,employees e,departments d 
WHERE 
e.job_id=j.job_id and e.department_id 

 

分类:
  按年代分类:
      sq192标准仅仅支持内连接
        sq199标准推荐使用】:支持内连接+外连接+交叉连接
        
按功能分类:
  内连接:
      等值连接
        非等值连接
        自连接

需求:查询女神名和对应的男神名
select bt.name,bo.boyName from beauty bt,boys bo where bt.boyfriend_id=bo.id;

sq192标准的等值连接
      等值连接:
              @1 多表等值连接,结果为多表的交际部分
                   @2 n表连接的时候,至少需要n-1个连接条件
                        @3 多表连接的顺序没有要求
                               @4一般需要对表起别名
                                      @5 可以搭配前面所学的所有子句进行使用,比如:排序,分组,筛选
                                        

外连接:
  select 查询列表 from 表1  别名  连接类型 join 表2  on 连接条件
特点:
  @1 外连接查询的结果为主表中的所有记录
       如果从表中有和它匹配的值,则显示匹配的值

         如果      没有          ,则显示null
         
  @2 外连接分类:
     左外连接:left    join 左边的表是主表
         右外连接:right   join 右边的表是主表

     
  @3 左外和右外交换两个表的顺序,可以实现同样的效果
    
    @4 全外连接:full    全外连接=内连接的结果+表1中有的 表2中没有得+表2中有的 表1中没有的结果
         

select b.*,bo.* from beauty b left JOIN boys bo on b.boyfriend_id=bo.id;

select b.*,bo.* from beauty b right JOIN boys bo on b.boyfriend_id=bo.id;
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值