本帖最后由 小鲁哥哥 于 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目前不支持该语法!
|