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

本文共 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://kefel.baihongyu.com/

你可能感兴趣的文章
java多线程细微知识点
查看>>
文档对象模型DOM(二)
查看>>
【Single Num II】cpp
查看>>
【 Sqrt(x) 】cpp
查看>>
第十七章: 自定义View
查看>>
从两个数组中查找相同的数字谈Hashtable
查看>>
201671010136 泛型类总结
查看>>
各种标志位的含义
查看>>
UitraEdit快捷键
查看>>
MyEclipse中消除frame引起的“the file XXX can not be found.Please check the location and try again.”的错误...
查看>>
JAVA线程
查看>>
压缩跟踪(CT)代码具体学习_模块1(样本的採集和扩充)
查看>>
硬盘写入 iso
查看>>
Linux学习日记——字符处理
查看>>
shell问题-报错即退出
查看>>
html常用标签
查看>>
java代理模式实例讲解
查看>>
maven+springmvc+hibernate搭建web项目
查看>>
Bug解决过程复盘
查看>>
nginx 重写 rewrite 基础及实例(转)
查看>>