SQL学习笔记(四)
SQL 连接(JOIN)
join用于把来自两个或者多个的表的行结合起来
基于这些表之间的共同字段。
LEFT JOIN
SELECT * FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key
SELECT * FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key WHERE B.Key IS NULL
RIGHT JOIN
SELECT * FROM TableA A RIGHT JOIN TableB ON A.Key=B.Key
SELECT * FROM TableA A RIGHT JOIN TableB ON A.Key=B.Key WHERE A.Key IS NULL
INNER JOIN (它跟JOIN相同)
SELECT * FROM TableA A INNER JOIN TableB ON A.Key=B.Key
OUTER JOIN
SELECT * FROM TableA A FULL OUTER JOIN TableB ON A.Key=B.Key
SELECT * FROM TableA A FULL OUTER JOIN TableB ON A.Key=B.Key WHERE A.Key IS NULL OR B.Key IS NULL
其中INNER JOIN 最常见最简单,从多个表中返回满足JOIN条件的所有行
INNER JOIN 如果表中至少一个匹配,则返回行
LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN:只要其中一个表中存在匹配,则返回行
在使用JOIN时,ON 和 WHERE 条件的区别如下:
1、ON 条件是在生成临时表时使用的条件,它不管ON中的条件是否为真,都会返回左边表中的记录
2、WHERE条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有LEFT JOIN的含义(必须返回左边表的记录)了。条件不为真的就全部过滤掉。
LEFT JOIN 关键字
从左边TABLE1返回所有的行,即使右表TABLE2中没有匹配。如果右表中没有匹配,则结果为NULL
RIGHT JOIN 关键字
从右表TABLE2返回所有的行,即使左表(TABLE1)中没有匹配。如果左表中没有匹配,则结果为NULL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构