学习笔记之多表查询

1.概述

        多表查询的意义在于可以从多个数据源中获取数据,并将这些数据按照一定的规则进行整合和分析,从而更好地了解和分析数据

        单表查询语句:select   *   from 表名,是查询单张表的数据,查询多张表是在单表查询的基础就只需要使用逗号分隔多张表即可,如: select * from 表1, 表2;

-- 单张表查询
select * from 表1;

-- 多表查询
select * from 表1,表2;

通过 select * from 表1, 表2;可以得到表1和表2的所有组合情况,但是其中有不少的组合,是我们所不需要的,所以需要个进一步优化查询方案,去除无效的组合。

        解决方法:给多表查询加上连接查询条件即可。

-- 优化方案
select * 表1,表2 where 查询条件;

        因为我们进行多表查询时,表之间都是有关联性的,查询条件就可以是,主表的主键等于从表的外键,这样可以最大程度的保留有效记录。

2.分类:

(1)内连接:相当于查询表a,表b的交集部分

        隐式内连接:

select  字段列表   from   表1 , 表2   where   条件 ... ;

        显示内连接:

select  字段列表   from   表1  [ inner ]  join 表2  on  连接条件 ... ;

(2)外连接:

                左外连接:查询左表的所有数据,以及两张表交集部分

select  字段列表   from   表1  left  [ outer ]  join 表2  on  条件 ... ;

                右外连接:查询右表的所有数据,,以及两张表交集部分

select  字段列表   from   表1  right  [ outer ]  join 表2  on  条件 ... ;

注:左右是相对与关键字left,right,关键字左边是左表,右边是右表。左外连接和右外连接是可以相互替换的,只需要调整在连接查询时SQL中,表结构的先后顺序就可以了。

       (3)子查询

                SQL语句中是可以嵌套SELECT语句的,称为嵌套查询,又称子查询。

SELECT  *  FROM   t1   WHERE  column1 =  ( SELECT  column1  FROM  t2 );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值