【SQL】SQL中笛卡尔积、内连接、外连接的数据演示
SQL的查询语句中,常使用到内连接、外连接,以及连接的基础--笛卡尔积运算。
在简单的SQL中,也许我们还分辨清楚数据如何连接,一旦查询复杂了,脑子也犯浆糊了,迷迷糊糊的。
本文,简单以数据形式记录连接的数据结果,在迷糊时可翻阅。
以MySQL运行。
> 原始的表
select * from t_user u;
select * from t_address a;
select * from t_phone p;
> 笛卡尔积
select * from t_user, t_address; 或 select * from t_user inner join t_address;
> 内连接
-- 例3.1 select * from t_user u, t_address a where u.id = a.user_id; -- 例3.2 select * from t_user u inner join t_address a where u.id = a.user_id; -- 例3.3 select * from t_user u inner join t_address a on u.id = a.user_id;
-- 例3.4 select * from t_user u inner join t_address a where u.id = a.user_id and a.address like '%罗湖%'; -- 例3.5 select * from t_user u inner join t_address a on u.id = a.user_id and a.address like '%罗湖%';
例3.4、例3.5虽结果集相同,按照其SQL语义看,执行过程应该有所不同。(我对其中原理也不了解,此处暂不作深究)
> 左外连接
select * from t_user u left outer join t_address a on u.id = a.user_id;
多层外连接
select * from t_user u left outer join t_address a on u.id = a.user_id left outer join t_phone p on u.id = p.user_id;
select * from t_user u left outer join t_address a on u.id = a.user_id left outer join t_phone p on u.id = p.user_id left outer join t_phone p2 on u.id = p2.user_id;
> 右外连接
select * from t_user u right outer join t_address a on u.id = a.user_id;
获取这样查询,效果更好看、明显
select * from t_address a right outer join t_user u on u.id = a.user_id;
作者:Nick Huang 博客:http://www.cnblogs.com/nick-huang/
本博客为学习、笔记之用,以笔记形式记录学习的知识与感悟。学习过程中可能参考各种资料,如觉文中表述过分引用,请务必告知,以便迅速处理。如有错漏,不吝赐教。
如果本文对您有用,点赞或评论哦;如果您喜欢我的文章,请点击关注我哦~
本博客为学习、笔记之用,以笔记形式记录学习的知识与感悟。学习过程中可能参考各种资料,如觉文中表述过分引用,请务必告知,以便迅速处理。如有错漏,不吝赐教。
如果本文对您有用,点赞或评论哦;如果您喜欢我的文章,请点击关注我哦~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用