0

0

数据库之查询的连接方式

php中文网

php中文网

发布时间:2016-06-07 15:55:47

|

1933人浏览过

|

来源于php中文网

原创

前言 在写开头的时候我想到了两个开始,比较一下 第一个开头:sql几种常见的查询连接方式 第二个开头:sql(结构化查询语言)有数据定义功能,数据查询功能,数据操作功能,数据控制功能。我们平常所说的增删改查就是sql这些功能的更加简洁的说法。现在就查

前言

在写开头的时候我想到了两个开始,比较一下

第一个开头:sql几种常见的查询连接方式
第二个开头:sql(结构化查询语言)有数据定义功能,数据查询功能,数据操作功能,数据控制功能。我们平常所说的增删改查就是sql这些功能的更加简洁的说法。现在就"查"来介绍几种常用的连接方式。
哪一种更好?我个人更加倾向于第二种。原因是第二种让我明确了我现在总结的知识在我的知识网中处于什么地方。让我的知识很有归属感。至于我为什么会想到第二种写法就要源于一趟课了。

在准备写这篇博客的过程中米老师给我们上了一堂课叫做“再谈编织知识网”。这堂课的中心思想我总结了两个方面。

第一个:学习新东西的时候要联系我们以前的东西。

第二个:全局观,"不谋万世者,不足谋一时;不谋全局者,不足谋一域。"对于我来说最大的收获不是老师讲的这两点,而是老师在讲第二点的时候无意之间提到的一句话,原话记不清出了大概的意思是:一定要有全局观,这样子才可以找到新东西里哪是你以前学习过的旧知识。这样子你的学习会轻松快乐的很多。
这句话对我有这么深的感触是因为我以前只是听老师讲全局观,但是自己对他的感觉其实是"熟悉的陌生人"。我从来不知道如何才算是有了全局观,还有全局观对我到底有何好处。但是老师说的"找到",让我一下子清楚过来了,全局观也算是刚刚开始认识了吧!现在想起来,全局观还会让我找到新知识的重点是什么。让我快速的了解他的全貌,这就为我下一步如何走奠定了基础。好处多多以后要多多题型着自己一点了。

好了现在开始进入正题,查询的几种连接方法。

连接简介

SQL提供了多种类型的连接方式,它们之间的区别在于:从相互交叠的不同数据集合中选择用于连接的行时所采用的方法不同。

我们最常用的连接方式有三种,分别是内连接,外连接;外连接又细分为左外连接,右外连接。除了这三种还有三种连接方式,分别是:全外连接,自身连接和交叉连接。

这几种连接方式的定义就简单的了解写一下吧

inner join(内连接):只返回两个表中联结字段相等的行 left outer join(左外连接):返回包括左表中的所有记录和右表中联结字段相等的记录 right outer join(右外连接):返回包括右表中的所有记录和左表中联结字段相等的记录 full outer(全外连接):返回左表和右表中全部的记录 自身连接:同一个表自己与自己连接。 cross join(交叉连接):交叉连接返回左表中的所有行,左表中的每一行与右表中的所有行组合

光看这些定义可以会有一种讲的都是什么的感觉,下面就用一种图形将它们简单的介绍一下,然后再通过具体的实例进行测试。

下图中一个圆圈代表一个表,其中蓝色的代表左表,白色的代表右表

\

从图上再来看几种连接就会清楚很多。

内连接:就是图中的C部分

左外连接:就是图中的A+C部分

右外联结:就是图中的B+C部分

实例

建立两种表分别是Table_a Table_b,在表中添加几条记录;如下图

\

\

1. 内连接

--内连接(inner) 可以省略inner
select a_UserID,b_StudentID from Table_a
inner join Table_b on a_UserID = b_StudentID  
结果 

\

ecshop
ecshop

本版本全面兼容php5.6+,并且修复了许多官方程序的低级代码bug。在apache 2.4.17+php5.6.15环境下测试通过,人格保证无毒无木马,仅仅是一名ecshop热爱者心血来潮之作。ecshop编译更新日志:1、加入最新官方补丁。2、修改数据库连接底层为mysqli, 现在完美无缺了。3、再次对所有代码进行细节修复。4、adminers更新至1.1.2, 在线管理数据库的神器。5、测

下载

 

2. 外连接之左外连接

--外连接之左连接 也可以写成left join(省略outer)
select a_UserID,b_StudentID from Table_a
left outer join Table_b on a_UserID = b_StudentID 

结果

\

 

3.外连接之右外连接

--外连接之右连接  也可以写成 right join(省略outer)
select  a_UserID,b_StudentID  from Table_a
right outer join Table_b on a_UserID = b_StudentID

结果 

\

 

4.全外连接

--全外连接
select a_UserID , b_StudentID from Table_a
full outer join Table_b on a_UserID=b_StudentID
结果

 

\

 

5.自身连接

--自身连接
select s.a_ID , s.a_UserName, i.a_UserID, i.a_UserName from Table_a i
join Table_a s on i.a_UserID = s.a_ID
结果

 

\

 

6.交叉连接

--交叉连接
select i.a_UserID,t.b_StudentID from Table_a i cross join Table_b t
select count(*) from Table_a i cross join Table_b t

结果

\

 

总结

这篇文章介绍常用的查询方法的使用方法,通过图形将它的定义图形化,使得理解起来更加的简单。

相关专题

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

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

65

2025.12.31

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

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

43

2025.12.31

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

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

35

2025.12.31

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

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

41

2025.12.31

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

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

204

2025.12.31

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

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

9

2025.12.31

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

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

8

2025.12.31

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

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

3

2025.12.31

html5怎么使用
html5怎么使用

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

2

2025.12.31

热门下载

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

精品课程

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

共48课时 | 6.4万人学习

Django 教程
Django 教程

共28课时 | 2.6万人学习

Excel 教程
Excel 教程

共162课时 | 10.2万人学习

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

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