网站首页 > 基础教程 正文
相信熟悉SQL的人都知道SQL的JOIN语法,有几种变形(INNER JOIN,LEFT JOIN,RIGHT JOIN等)。讲解SQL的JOIN用法的文档有很多,但多数时候在使用起来的时候还是易弄混,不易清楚的理解每种用法产生的结果集。下面我以图解的方式,让你对SQL的JOIN种种变形有一个清晰直观的理解,从而更容易的理解并运用它。
首先,假设有A,B两张表,结构及数据如下:
INNER JOIN
INNER JOIN产生的结果集是A表和B表的交集。
代码如下:
结果如下:
LEFT JOIN
LEFT JOIN产生A表的完全集,而B表中匹配的则有值,没有匹配的则以NULL填充。
代码如下:
结果如下:
RIGHT JOIN
RIGHT JOIN和LEFT JOIN相对应,产生的是B表的完全集,而A表中匹配的则有值,没有匹配的则以NULL填充。
代码如下:
结果如下:
OUTER JOIN
OUTER JOIN也可以写成FULL OUTER JOIN,产生的是A表和B表的并集。没有匹配的记录,仍是以NULL填充。
代码如下:
结果如下:
LEFT Excluding JOIN
LEFT Excluding JOIN产生在A表中有而在B表中没有的集合。
代码如下:
结果如下:
RIGHT Excluding JOIN
RIGHT Excluding JOIN与LEFT Excluding JOIN相对应,产生的是B表中有而在A表中没有的集合。
代码如下:
结果如下:
OUTER Excluding JOIN
OUTER Excluding JOIN产生的是A表有而B表没有,B表有而A表没有的数据集。
代码如下:
结果如下:
最后,下面这张图整理了上面讲的所有内容。
猜你喜欢
- 2024-10-11 SQL语法——右连接 RIGHT JOIN 关键字
- 2024-10-11 数据筛选,如何像SQL一样使用Pandas完成JOIN连接、UNION合并查询
- 2024-10-11 SQL多个Join on 和Where间的执行顺序(nest loop join机制)
- 2024-10-11 SparkSQL大数据实战:揭开Join的神秘面纱
- 2024-10-11 SQL INNER JOIN 关键字 sql关键字union
- 2024-10-11 阿里规范不建议多表join,可这SQL要怎么写
- 2024-10-11 SQL RIGHT JOIN 关键字 sql语句 关键字
- 2024-10-11 Apache Flink 漫谈系列-JOIN 算子
- 2024-10-11 awk实现类sql的join操作 awvs结合sqlmap
- 2024-10-11 扩展FlinkSQL实现流与维表Join flinksql mysql维表
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)