黑马程序员技术交流社区
标题: 【济南中心】PHP课程同步笔记day18:数据库操作语言-连表查询 [打印本页]
作者: 小鲁哥哥 时间: 2017-6-30 13:37
标题: 【济南中心】PHP课程同步笔记day18:数据库操作语言-连表查询
本帖最后由 小鲁哥哥 于 2017-6-30 13:39 编辑
【济南中心】PHP课程同步笔记day18:数据库操作语言-连表查询
连接(join)查询连接查询的概念 连接查询,就是将两个或更多的表,以某种方式“连接起来”,成为一个整体(表),并作为数据源以供数据查询使用;
连接的方式,大致可以这样一句话描述:
将一个表(A)的每一行,跟另一个表(B)的每一行,两两之间,以“横向对接”(并列)的方式,连接起来,成为一个更长的行,这样得到的所有行所构成的结果数据,就是连接结果(表);
假设:
A表有m1行,n1列;
B表有m2行,n2列;
则连接后,结果是:
总共有n1+n2列,m1*m2行;
连接之后:
连接查询的基本语法形式:
from 表1 【连接方式】 join 表2 【on 连接条件】
或者还可以连接更多,类似这样:
from 表1
【连接方式】 join 表2 【on 连接条件】
【连接方式】 join 表3 【on 连接条件】
。。。。。
连接主要分为:
交叉连接:
形式:
from 表1 【cross】 join 表2 #即交叉连接是不设定连接条件
含义与说明:
1,其实就是将两个表以连接的基本概念的形式连接起来,不设定任何条件的结果数据;
2,交叉连接又叫做“笛卡尔积”;
3,在实际应用中,交叉连接的结果数据,几乎没有实用价值!
内连接:
形式:
from 表1 【inner】 join 表2 on 表1.某字段 = 表2.某字段
说明:
1,inner关键字可以省略,但不推荐省略;
2,on条件的设定是必须的,表示其中一个表上的字段值,跟另一个表上的某个字段的值相等;
3,其含义是:在交叉连接的结果数据基础上,只取出那些满足连接条件的行的数据!
4,内连接的结果,通常就是各种应用中,找出表跟表之间的有意义有关联的数据的最常用形式;
左(外)连接:
形式:
from 表1 left 【outer】 join 表2 on 表1.某字段 = 表2.某字段
说明:
1,含义是:将内连接的连接结果数据,再加上,左边表中,那些“不能满足连接条件”的数据的结果,其中那些不能满足条件的左边表的数据行的“右边部分”,用null填充满。
右(外)连接:
形式:
from 表1 right 【outer】 join 表2 on 表1.某字段 = 表2.某字段
说明:
1,含义是:将内连接的连接结果数据,再加上,右边表中,那些“不能满足连接条件”的数据的结果,其中那些不能满足条件的右边表的数据行的“左边部分”,用null填充满。
全(外)连接:
形式:
from 表1 full 【outer】 join 表2 on 表1.某字段 = 表2.某字段
说明:
1,含义是:
将内连接的连接结果数据;
再加上,左边表中,那些“不能满足连接条件”的数据的结果;
再加上,右边表中,那些“不能满足连接条件”的数据的结果。
其中那些不能满足条件的左边表的数据行的“右边部分”,用null填充满
其中那些不能满足条件的右边表的数据行的“左边部分”,用null填充满。
2,I am sorry, mysql目前不支持该语法!
作者: yu44303 时间: 2017-7-9 20:07
66666666666666666666666
作者: willbe 时间: 2017-11-16 14:40
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |