Mysql中关于连接(join)查询详解


本文摘自PHP中文网,作者黄舟,侵删。

Mysql中关于连接(join)查询详解


1.基本概念

将两个表的每一行,以“两两横向对接”的方式,所得到的所有行的结果。

假设:

表A有n1行,m1列;

表B有n2行,m2列;

则表A和表B“对接”之后,就会有:

n1*n2行;

m1+m2列。

1.png

2.则他们对接(连接)之后的结果类似这样:

2.png


3连接查询基本形式:

from 表1 【连接方式】 join 表2 【on连接条件】

连接查询的分类

1.交叉连接

其实就是两个表之间按连接的基本概念,进行连接之后所得到的“所有数据”,而对此无任何“筛选”的结果――筛选就是指连接条件。

即:交叉连接就是没有条件的“全部连接”――有称为 笛卡尔积。

交叉连接通常没有实用价值,因为这样连接之后 数据,每一行数据的意义就可能会“丢失”。

形式:

from 表1 【cross】 join 表2 ;

或:

from 表1 , 表2 ;

内连接

形式:

from 表1 【inner】 join 表2 on 表1.字段1 = 表2.字段2;

含义:

取得一个“交叉连接”的结果中,满足所设定的连接条件(就是on后面的条件)的那些行的数据;

交叉连接往往会有“无意义数据”,如下:

3.png

2.看内连接的结果:

4.png

3.结果为:

5.png

4.可见:

内连接其实就是找出一个交叉连接的数据结果中,“有意义”的那些数据行。

而一个交叉连接,其中的数据,有的有意义,有的没有意义(错误数据)。

但是,要注意:

1,这种连接条件,不是随意设置,而是要根据表之间的实际关系来设置,通常该关系就是两个表之间的具有“主外键关系”的两个字段的值相等。

2,可见,连接查询,跟我们之前所学的“外键关系”,是有其内在的逻辑一致性的。

3,不过,我们做内连接的时候,并不是要求2个表“必须”有外键关系――我们只是自己从现实角度理解他们有外键关系(数据关系)就可以,而在查询的时候使用内连接就建立起了他们的关系。

以上就是Mysql中关于连接(join)查询详解的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

总结mysql数据库与表的基本常用命令

如何通过mysql查看数据库表容量大小

分页查询的使用详解

mysql能有几个数据库吗?

mysql数据库的基础知识

mysql命令大全(完整版)

深入了解mysql中的自增主键

mysql列column常用命令的使用总结

mysql数据定义语言ddl的基础语句

介绍mysql安装测试数据库employees

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...