博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【SQL】SQL中笛卡尔积、内连接、外连接的数据演示
阅读量:6174 次
发布时间:2019-06-21

本文共 1301 字,大约阅读时间需要 4 分钟。

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.1select * from t_user u, t_address awhere u.id = a.user_id;-- 例3.2select * from t_user u inner join t_address awhere u.id = a.user_id;-- 例3.3select * from t_user uinner join t_address a on u.id = a.user_id;

 

-- 例3.4select * from t_user u inner join t_address awhere u.id = a.user_idand a.address like '%罗湖%';-- 例3.5select * from t_user uinner 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_idleft 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_idleft outer join t_phone p on u.id = p.user_idleft 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 aright outer join t_user u on u.id = a.user_id;

 

转载地址:http://vvtba.baihongyu.com/

你可能感兴趣的文章
win10下安装Oracle 11g 32位客户端遇到INS-13001环境不满足最低要求
查看>>
AngularJS-01.AngularJS,Module,Controller,scope
查看>>
【MySQL 安装过程1】顺利安装MySQL完整过程
查看>>
Inno Setup入门(二十)——Inno Setup类参考(6)
查看>>
图片自适应
查看>>
amd cmd
查看>>
Linux下的uml画图工具
查看>>
xml返回数组数据
查看>>
约瑟夫问题总结
查看>>
spring mybatis 批量插入返回主键
查看>>
指针函数小用
查看>>
开源力量公开课第二十三期-从SVN到Git,次时代代码管理
查看>>
输入挂
查看>>
升级迁移前,存储过程统计各个用户下表的数据量,和迁移后的比对
查看>>
sql注入分类
查看>>
初识CSS选择器版本4
查看>>
[Hadoop in China 2011] 朱会灿:探析腾讯Typhoon云计算平台
查看>>
JavaScript之数组学习
查看>>
PHP 设置响应头来解决跨域问题
查看>>
CAS实现SSO单点登录原理
查看>>