美文网首页
2022-03-04 join操作

2022-03-04 join操作

作者: Denholm | 来源:发表于2022-03-04 19:03 被阅读0次
-- ###################join操作###########################
-- 1、内连接
/*
    1)内连接求的是多张表的交集
    2)内连接又分为两种
        隐式内连接
        显式内连接
 */

select *
from teacher;

show tables;

create external table course
(
    cid   string,
    cname string,
    tid   string
) row format delimited fields terminated by '\t';

load data local inpath '/export/data/course.txt' overwrite into table course;

select *
from course;

-- 笛卡尔积
select *
from teacher,
     course;

-- 1.1 查询每一个老师所教授的课程
-- 隐式内连接
select *
from teacher t,
     course c
where t.tid = c.tid;

-- 多张表隐式内连接写法
/*
-- 伪代码
select *
from A a,
     B a,
     C c
where a.id = b.id
  and b.id = c.id;
*/

-- 显式内连接
select *
from teacher t
         inner join course c on t.tid = c.tid;

-- inner可省略
select *
from teacher t
         join course c on t.tid = c.tid;

-- 多张表显式内连接写法
/*
-- 伪代码
select *
from A a
         join B b on a.id = b.id
         join C c on b.id = c.id;
*/

-- 2、外连接
/*
   1) 外连接是以某一张表为主,不是求交集
   2) 外连接分为三种
      左外连接:以左表为主,会把左表的数据全部输出,右表有交集的数据输出,没有交集的数据则输出NULL
      右外连接:以右表为主,会把右表的数据全部输出,左表有交集的数据输出,没有交集的数据则输出NULL
      满外连接:显示左表和右表的全部数据(并集)
 */

-- 给左表添加一行右表没有的数据
insert into teacher
values ('06', '周七');

-- 左外连接
select *
from teacher t
         left outer join course c on t.tid = c.tid;

-- outer可省略
select *
from teacher t
         left join course c on t.tid = c.tid;

-- 左外连接多表查询
/**
-- 伪代码
select *
from A a
         left join B b on a.id = b.id
         left join C c on b.id = c.id;
 */

-- 右外连接
-- 给右表添加一行左表没有的数据
insert into course
values ('04', '地理', '05');

select *
from teacher t
         right outer join course c on t.tid = c.tid;

-- outer可省略
select *
from teacher t
         right join course c on t.tid = c.tid;

-- 满外连接(左外和右外的并集)
select *
from teacher t
         full join course c on t.tid = c.tid;

相关文章

  • 2022-03-04 join操作

  • MySQL数据库篇4

    本章主要为多表联查的相关操作。 关键词:left join、reght join、inner join、join ...

  • 理解join操作

    join操作 为什么要给予join操作特殊的关照? 答:join操作受到了许多关注,存在若干个变形,理由有3个:j...

  • 图说SQL Join

    原文:图说SQL Join 如果你也曾经被SQL语言中各种Join操作:Left Join, Right Join...

  • hive 查询性能优化总结

    一、join优化 ** Join查找操作的基本原则:** 应该将条目少的表/子查询放在 Join 操作符的左边。原...

  • kafka streams的join实例

    序 本文简单介绍一下kafka streams的join操作 join A join operation merg...

  • MapReduce join

    一、说明 MapReduce提供的表连接操作包括:Map端join、Reduce端join、semi join(半...

  • MySQL 的 join 功能弱爆了?

    简介: 对于 join 操作的实现,大概有 Nested Loop Join (循环嵌套连接),Hash Join...

  • join

    join 操作 window join 方式 代码形式 相当于sql中的stream1 join stream2 ...

  • 关于left join

    前言 join是SQL查询中非常常见的一种操作,具体来说有join.left join,right join ,f...

网友评论

      本文标题:2022-03-04 join操作

      本文链接:https://www.haomeiwen.com/subject/ajpmrrtx.html