左连接,右连接,内连接
来源:互联网 发布:哪个虚拟机装mac好 编辑:程序博客网 时间:2024/05/29 18:58
【转载】学些sql
对于左联接,右联接,内联接,很多人在进行数据库表操作的时候,都是喜欢将一次性能够查询到的数据放到一个表,或者说索性查询只查一个表的信息,当然,这种习惯包括鄙人在内也常见,主要是左联接,右联接,内联接用的不熟练的话,容易让人比较头大,尤其是比较大型的查询语句,如果再加入这些,oh,my god,我想那就不只是眼花缭乱了,所以,只有把这些联接搞清楚,不管是你自己写sql语句,还有就是看别的工程师的程序的时候,都能够得心应手,希望以下的经验,对于读者能够有所帮助。
工具/原料
SQL Server 2005
步骤/方法
首先需要解释一下这几个联接的意思:
left join(左联接): 返回包括左表中的所有记录和右表中联结字段相等的记录。
right join(右联接): 返回包括右表中的所有记录和左表中联结字段相等的记录。
inner join(等值连接): 只返回两个表中联结字段相等的行。
接下来,创建一个数据库,然后创建两张表,分别为MyTable1和MyTable2,然后向这两张表中插入一些我们要测试的数据,这里忽略建库和建表过程,望理解。
好了,接下来,我们来查询一下是否添加成功了:
我们根据上一步查询,可以看出,表1中的ID编号分别为:1,2,3,5,而表2中的ID编号分别为:1,2,3,4,也就是说,两个表中的最后一条数据是对应不上的,接下来,我们来看一下left join执行的效果,语句为:
select * from MyTable1 a
left join MyTable2 b
on a.ID=b.ID通过结果我们可以看出,left join是以表1的记录为基础,即左表的记录全部显示出来,而表2只显示符合搜索条件的记录显示出来,即右表根据条件显示,那这里的条件就是a.ID=b.ID,记录不足的会以NULL填充显示。
接下来,我们看一下right join执行的效果,语句为:select * from MyTable1 a right join MyTable2 b
on a.ID=b.ID我们会发现,right join执行的效果刚好和left join执行的效果相反,即以右表的数据为基础,显示右表全部数据,而只显示左表符合搜索条件的数据。
接下来,我们再看一下inner join执行的效果,语句为:select * from MyTable1 a inner join MyTable2 b
on a.ID=b.ID通过结果,我们可以发现,inner join不以任何数据为基础,只显示符合搜索条件的数据。
综合以上信息,我们就可以清楚的知道,当你需要两个或者多个表的数据的时候,你想要什么样的数据,该用什么样的联接,这对于数据操作来说,是一个很大的便利。
- 左连接、右连接、内连接
- 左连接、右连接、内连接
- 左连接、右连接和内连接
- 左连接、右连接和内连接
- 内连接、左连接、右连接
- 内连接、左连接、右连接
- 左连接,右连接,内连接讲解
- 左连接、右连接、内连接、索引
- 内连接 左连接 右连接
- sql 内连接,左连接,右连接
- MySQL左连接、右连接、内连接
- 内连接、左连接、右连接
- 左连接,右连接,内连接
- Linq 左连接 右连接 内连接
- SQL 左连接 右连接 内连接
- 左连接、右连接、内连接
- 内连接 左连接 右连接
- 左连接、右连接、内连接实验
- ubuntu安装五笔输入法(ibus-table-wubi)
- 一键安装LNMP(自我备份)
- linux下vi命令大全
- android 自定义权限 permission .
- 用qt.conf和qtconfig配置Qt运行设定
- 左连接,右连接,内连接
- 动软分享社区功能解析-视频分享和基于地理位置分享图片
- 树节点的遍历
- poj 1947
- posix多线程有感--线程高级编程(条件变量)
- Asp.Net中利用数据库保存图片的应用!
- sql server语句编写中的总结
- PreferenceActivity中使用layout 布局文件
- MIME类型对照表