首页 / MYSQL / MySQL:连接查询
MySQL:连接查询
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL:连接查询,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2760字,纯文字阅读大概需要4分钟。
内容图文
![MySQL:连接查询](/upload/InfoBanner/zyjiaocheng/483/249995a51c6f42639ab0cbe1c0a719cf.jpg)
先将所有数据按照某种条件,连接起来,再进行筛选处理。
2. 分类方式:
根据连接的条件不同,分为一下几类:
① 内连接(Inner):要求连接的多个数据都必须存在,才能进行连接。
【举个栗子】如下三张表,分别记录了老师的信息,班级信息,以及老师们的代课情况。
此时,若想获得所有老师的代课信息,‘韩信’在表3中有与之配对的记录(内连接)
但发现孙武没有带过课,即表1中的‘孙武’在表3中没有与之配对的记录(外连接)。
表1. 所有老师的信息 表2. 所有班级的信息
表3. 老师们的代课情况
【语法】tbl_left inner join tbl_right on 连接条件;
【举个栗子】求表1中的所有老师的开始代课时间、代课天数。
tip : 内连接可以省略连接条件,意味着所有左表的数据都要与右表的记录做一次连接(交叉连接or笛卡尔积连接)。
此时可以使用cross join代替inner join。
实际上,可以使用多表查询的方式,不实用where,做到笛卡尔积。
在MySQL中,inner join是默认的连接方式,可以省略inner。
【写法】1) on(写法如上一个例子)。
2) where(只需把on替换成where即可)。
结果一样,但是逻辑关系不同:where会先形成包含所有连接的笛卡尔积,再在这些数据中进行过滤;
on 会先进行满足条件的数据过滤,在对过滤后的数据进行连接。
【using】当有同名字段时,可以使用 using (字段名),进行条件约束。
【as】给表、字段起别名,可以把比较长的表名改成比较短的别名,保证简洁、清晰。
② 外连接(outer):负责连接的数据有一个或多个不存在
【语法】tbl_name left outer join tbl_name on 连接条件;(也可以使用using,不使用where!!)
tip : 必须要有连接条件!!(内连接没有条件=笛卡尔积,但是外连接必须有)
1) 左外连接;(left outer join)
左连接时,若左表的数据连接不到右表的情况,则左表的数据在最终结果中被保留
(如上图,左表中的‘孙武’没有连接到右表的数据,但是‘孙武’在最终数据中保留了下来);
若右表数据连接不到左表,则最终结果中,右表数据被丢弃(如下图,交换两表的左右顺序,发现右表的‘孙武’被丢弃)。
2) 右外连接;
3) 全外连接(MySQL不支持);
(左连接)union(右连接);
③ 自然连接(natural):通过 MySQL 自己的判断完成连接过程,无需指明连接条件。
MySQL 使用多表内相同的字段,作为连接条件。
【语法】 (表1) natural join (表2); ----内
natural left join ----- 左外
natural right join --- 右外
3. 多表连接
MySQL:连接查询
标签:round 关系 bsp img 思路 image nbsp 通过 多表连接
本文系统来源:http://www.cnblogs.com/zhqiang/p/6901311.html
内容总结
以上是互联网集市为您收集整理的MySQL:连接查询全部内容,希望文章能够帮你解决MySQL:连接查询所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。