1、内连接:[inner] join on
分类:等值连接、非等值连接
(1)等值连接: 指使用等号"=“比较两个表的连接列的值,相当于两表执行笛卡尔后,取两表连结列值相等的记录(自然连接是一种特殊的等值连接)(2)非等值连接:指使用”>“或”<"比较两个表的连接列的值,相当于两表执行笛卡尔后,取一个表大于或小于另一个表的连结列值的记录
2、外连接
分类:左外连接、右外连接、全外连接
(1)左外连接:left outer join
连接效果:查询结果包含左、右两个表需要查询的全部行,左侧的表中的全部数据都会被显示出来,但是右侧表的数据,只有和左侧匹配上的数据才会被查询出来!否则显示为null(2)右外连接:right outer join
连接效果:查询结果包含左、右两个表需要查询的全部行,右侧的表中的全部数据都会被显示出来,但是左侧表的数据,只有和右侧匹配上的数据才会被查询出来!否则显示为null(3)全外连接:full/all outer join,查询结果包含左、右两个表需要查询的全部行,对应字段没有值显示null
3、交叉连接
左表中的每一行与右表中的所有行组合,也叫表与表之间做笛卡尔积查询
4、自连接
当前表与自身的连接查询,关键点在于虚拟化出一张表,即给自身的表定义一个别名
1、Access 数据库多表联合查询,每次连接之前须将连接符前面的内容放在括号里面,示例如:select 表a.字段1,表b.字段1,表c.字段1,表d.字段1 from ((表a inner join 表b on 表a.字段=表b.字段) inner join 表c on 表c.字段=表a.字段)inner join 表d on 表a.字段=表d.字段2、如果每个联合字段不止一个可将on后面条件加(),如:select 表a.字段1,表b.字段1,表c.字段1,表d.字段1 from (表a inner join 表b on (表a.字段1=表b.字段1 and 表a.字段2=表b.字段2)) inner join 表c on 表c.字段=表a.字段
3、如果要一次联合一个表多次,但条件不同,可以每次连接此表时给此表换个别名,用别名 *** 作即可,如:select aa.字段1,表b.字段1,表c.字段1,bb.字段2 from ((表a as aa inner join 表b on aa.字段1=表b.字段) inner join 表c on 表c.字段=表a.字段)inner join 表a as bb on 表a.字段=bb.字段2.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)