反馈已提交

网络繁忙

表连接与联合

  • 文档创建者:Roxy
  • 历史版本:3
  • 最近更新:Wendy123456 于 2023-08-29
  • 1. 概述

    进行数据处理时,经常需要将数据表进行连接,本文介绍在 FineDataLink 中的多种连接方式。

    2. 左连接

    LEFT JOIN(左连接)和 LEFT OUTER JOIN(左外连接) :返回包括左表中的所有记录和右表中连接字段相等的记录。

    根据条件以左表为基准进行匹 配,如果匹配则正常输出,没有则以 null 代替,而且右边表有重复值的情况下会输出多条。

    在 FineDataLink 中可以使用「数据关联」实现。

    有两张表如下:

    使用数据关联左连接,如下图所示:

    得到以下结果:

    上述算子设置相当于 SparkSQL 中的语法:

    select * from DB表输入-副本
    left join DB表输入1-副本
    on DB表输入-副本.`姓名`  = DB表输入1-副本.`姓名` 

     或者 

    select * from DB表输入-副本
    left outer join DB表输入1-副本
    on DB表输入-副本.`姓名`  = DB表输入1-副本.`姓名` 

    注:LEFT JOIN 和 LEFT OUTER JOIN 的输出结果是一样的。

    LEFT SEMI JOIN(左半连接):

    只显示左边的表中的列,如果条件在左右边表中匹配,则输出,否则 过滤掉,而且右边表有重复值的情况下也只输出一条。

    例如上述两张数据表,如果使用左半连接则

    注:语句不能直接复制,数据表需点击输入源生成。

    则只会显示左右边表都匹配的结果,且右侧重复值被删除,结果如下:

    3. 右连接

    与左连接一致,使用「数据关联」即可实现。

    4. 全连接

    与左连接一致,使用「数据关联」即可实现。

    5. 内连接

    与左连接一致,使用「数据关联」即可实现。

    5. UNION 和 UNION ALL 联合

    UNION:会在上下联合时去除完全重复的数据。如果不为了去除重复行,建议使用 UNION ALL,并且效率会更高。

    示例: select* from ( select 2 as id_no,99 as score union select 2 ,95 ) Student_Score

    UNION ALL :对查询的数据集取并集,不会去除重复行。

    例如使用如下数据表进行上下联合:

    1)使用两个DB表输入算子,使用 SQL 与筛选出表a1,a2的全部数据,然后 Spark SQL 算子的 SQL 语句为:

    select * from a1
    union all
    select * from a2

    效果如下图所示:

    注:语句不能直接复制,数据表需点击输入源生成。


    结果如下图所示:


    如果使用 UNION 则表一种的重复数据会被删除,仅保留一条,结果如下图所示:

    附件列表


    主题: 数据开发-定时任务
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持