一文教会你写SQL多表查询语句
1 | 最近笔试好多让写sql语句,涉及多表查询。当写的时候突然发现自己曾经学的东西都忘了差不多了,故权当复习加之总结,写下这篇文章,忘诸君能获益一二便发挥了巨大的价值。 |
1. 前言
在各种问答社区里谈及 SQL 里的各种 JOIN 之间的区别时,最被广为引用的是 CodeProject 上 C.L. Moffatt 的文章 Visual Representation of SQL Joins ,他确实讲得简单明了,使用文氏图来帮助理解,效果明显。本文将沿用他的讲解方式,稍有演绎,可以视为该文较为粗糙的中译版。
2. 常用的 Join
1 | 总的可以分类三大类。 |
INNER JOIN
INNER JOIN 一般被译作内连接。内连接查询能将左表(表 A)和右表(表 B)中能关联起来的数据连接后返回。
文氏图:
INNER JOIN
LEFT JOIN
LEFT JOIN 一般被译作左连接,也写作 LEFT OUTER JOIN。左连接查询会返回左表(表 A)中所有记录,不管右表(表 B)中有没有关联的数据。在右表中找到的关联数据列也会被一起返回。
文氏图:
RIGHT JOIN
RIGHT JOIN 一般被译作右连接,也写作 RIGHT OUTER JOIN。右连接查询会返回右表(表 B)中所有记录,不管左表(表 A)中有没有关联的数据。在左表中找到的关联数据列也会被一起返回。
文氏图:
FULL OUTER JOIN
FULL OUTER JOIN 一般被译作外连接、全连接,实际查询语句中可以写作 FULL OUTER JOIN
或 FULL JOIN
。外连接查询能返回左右表里的所有记录,其中左右表里能关联起来的记录被连接后返回。
文氏图:
3. 不常用的Join
- Title: 一文教会你写SQL多表查询语句
- Author: Mr.zh
- Created at : 2024-06-13 15:48:03
- Updated at : 2024-06-13 20:47:38
- Link: https://github.com/zhyoulove/2024/06/13/一文教会你写SQL多表查询语句/
- License: This work is licensed under CC BY-NC-SA 4.0.