0

0

mysql左连接,右连接,内连接学习体会

php中文网

php中文网

发布时间:2016-06-07 15:33:48

|

1314人浏览过

|

来源于php中文网

原创

声明:本文为本人在分析学习了其他网友的博文后,得出的一些体会。。编写本文的目的,一则,分享自己的学习体会,希望通过此文与其他正在学习数据库的网友互相交流,共同学习;二则,记录下学习中的点滴收获,供以后温习。本人为数据库初学者,有很多观点可

声明:本文为本人在分析学习了其他网友的博文后,得出的一些体会。。编写本文的目的,一则,分享自己的学习体会,希望通过此文与其他正在学习数据库的网友互相交流,共同学习;二则,记录下学习中的点滴收获,供以后温习。本人为数据库初学者,有很多观点可能存在错误,若诸位网友有不同观点,望不吝指教。

首先引用一下这位网友的博文,本人从此博文中受益良多,感谢此位网友的分享。

http://hi.baidu.com/woaidelphi/item/d96be15c3ce2c1cbd2e10c6c

author:华夏之星
QQ:1019822077
email:woai_php@sina.com

内连接: 只连接匹配的行
左外连接: 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行
右外连接: 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行
注:此博文中还讲述了其他连接方式,鉴于本人刚开始学习数据库,因此,仅研究较为普遍的3中方式。

内连接与左右连接

在网上看到很多讲述内连接和左右连接的博文,一直认为这是3类连接方式。但看完这篇博文后,认识到,其实这3中连接方式,实际可以分为

两类。一种内连接,一种外连接。而外连接又可分为左连接和右连接。

内连接的匹配方式

------------------------------------------------------------------------------再次引用-----------------------------------------------------------------------

举个例子吧。
表A
id   name  
1    张
2    李
3    王

表B
id   address   A_id
1    北京      1
2    上海      3
3    南京      10

/******************************** inner join  内连接*****************************************/
排他性:A,B表中至少有1个匹配时,才返回行。两表的交集
SQL语句如下:
select A.name,B.address from A 
inner join B
on A.id = B.A_id

查询结果为:
name     address
张     北京
王     上海

------------------------------------------------------------------------------引用结束-----------------------------------------------------------------------

网上书店系统(北大青鸟内部)
网上书店系统(北大青鸟内部)

一个简单的网上书店系统,有图书管理、会员注册、评论发表、购物车等基本应用,后台有:定单管理、评论管理、用户管理、图书管理等功能模块。为北大青鸟学员练习之用,可以做为入门者的学习参考之用。采用了VS2005的master模板DB_51aspx下为Sql数据库文件,附加即可,注意:除修改web.config中的Sql连接信息以外还要对App_Code/Class1.cs中的Sql登录信息也要做对应的修

下载

        此sql查询语句可按如下翻译:使用内连接的方式,选择出A中id与B中A_id相等的A表和B表中的行,然后将A表中行的name字段和B表中的address字段组合成行,作为查询结果。

        具体过程可以描述为,对于A表中id为1的行(及表中第一行),与B表中的每一行都进行匹配,找到与B表中A_id字段相同的行(本例中B表的第一行便满足条件)。由于本例中,A表的第一行和B表的第一行便满足SQL语句的查询条件,因此,查询结果集的第一条结果为A表第一行的name(张)和B表第一行的address(北京)。然后,对A表的第二行进行匹配,遍历B表的所有行,没有找到满足与A表id(2)相同的A_id的行,因此。接着为A表的第3行,在B表中寻找匹配的行。遍历B表中所有的行,发现第二行的A_id(3)与A表id(3)匹配,因此,匹配成功,输出结果。自此,A表的所有行的查询了,本次SQL查询结束。结果有两条匹配的结果。

左右连接的匹配过程

--------------------------------------------------------------------------接着引用---------------------------------------------------------------

表A
id   name  
1    张
2    李
3    王

表B
id   address   A_id
1    北京      1
2    上海      3
3    南京      10

/******************************** left join  左连接*****************************************/
包容性:A表包容B表,左连接左表是全的.(left join 或 left outer join )
SQL语句如下:
SELECT A.name, B.address
FROM A
LEFT JOIN B ON A.id = B.A_id 
查询结果为:
name     address
张     北京
李     NULL
王     上海
/******************************** right join  右连接*****************************************/
包容性:B表包容A表,右连接右表是全的.(right join 或 right outer join )
SQL语句如下:
SELECT A.name, B.address
FROM A
RIGHT JOIN B ON A.id = B.A_id 
查询结果为:
name     address
张     北京
王     上海
NULL     南京        

------------------------------------------------------------------------------引用结束-----------------------------------------------------------------------

        左右连接的匹配过程与内连接的匹配过程相同,不同的是,左右连接查询时,SQL语句中,指定的基准表(right join 或left join 后的表)字段

无论是否在另一张表中有与之匹配的行,基准表中的字段均会输出。如上例左连接中的第二行,李(左连接基准表指定的查询字段)和右连接中的

第3行南京(右连接基准表中指定的查询字段)

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

150

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

88

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

90

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

61

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

493

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

16

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

12

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

5

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.6万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 779人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号