加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Apache Flink 漫谈系列 - JOIN 算子

发布时间:2018-11-20 17:47:47 所属栏目:教程 来源:孙金城
导读:聊什么 在《Apache Flink 漫谈系列 - SQL概览》中我们先容了JOIN算子的语义和根基的行使方法,先容进程中各人发明Apache Flink在语法语义上是遵循ANSI-SQL尺度的,那么再深思一下传统数据库为啥必要有JOIN算子呢?在实现道理上面Apache Flink内部实现和传统

内联接在SQL92中 ON 暗示联接添加,可选的WHERE子句暗示过滤前提,如开篇的示例就是一个多表的内联接,我们在看一个简朴的示例: 查询后果大于80分的门生学号,门生姓名和后果:

  1. mysql> SELECT 
  2.     ->   stu.no, stu.name , s.score 
  3.     -> FROM student stu JOIN score s ON  sstu.no = s.s_no 
  4.     -> WHERE s.score > 80; 
  5. +------+-------+-------+ 
  6. | no   | name  | score | 
  7. +------+-------+-------+ 
  8. | S001 | Sunny |    98 | 
  9. | S003 | Kevin |    88 | 
  10. +------+-------+-------+ 
  11. 2 rows in set (0.00 sec) 

上面按语义的逻辑是:

  • 第一步:先举办student和score的内毗连,如下:
    1. mysql> SELECT 
    2.     ->   stu.no, stu.name , s.score 
    3.     -> FROM student stu JOIN score s ON  sstu.no = s.s_no ; 
    4. +------+-------+-------+ 
    5. | no   | name  | score | 
    6. +------+-------+-------+ 
    7. | S001 | Sunny |    80 | 
    8. | S001 | Sunny |    98 | 
    9. | S001 | Sunny |    76 | 
    10. | S003 | Kevin |    78 | 
    11. | S003 | Kevin |    88 | 
    12. | S003 | Kevin |    68 | 
    13. +------+-------+-------+ 
    14. 6 rows in set (0.00 sec) 
  • 第二步:对内联功效举办过滤, score > 80 获得,如下最终功效:
    1. -> WHERE s.score > 80; 
    2. +------+-------+-------+ 
    3. | no   | name  | score | 
    4. +------+-------+-------+ 
    5. | S001 | Sunny |    98 | 
    6. | S003 | Kevin |    88 | 
    7. +------+-------+-------+ 
    8. 2 rows in set (0.00 sec)  

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读