连接查询分为四个部分:
一.内连接查询
一.内连接查询概念
1.查询信息的来源如果是来自多张表,则必须对这些表进行连接查询。
2.连接是把不同表的记录连接到一起的最普遍的方法,通过连接查询可讲多个表作为一个表进行处理。
3.连接查询分为内连接和外连接。
1.交叉连接(笛卡儿积)概念
a.交叉连接(Cross Join),又称“笛卡尔连接(Cross Join)”或“叉乘(Product)”,它是所有类型的内连接基础。
b.如果把表视为行记录的集合,那么交叉连接即返回这两个合集的笛卡儿积,返回到结果集合中的数据行数第一第一张表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。
示例实现线路表与车辆表笛卡儿积
select count(*) from line
2.内连接查询概要
1.内连接基于连接谓词,它将两张表(如A和B)的列组合在一起,产生新的结果表。
2.内连接查询会将A表的每一行和B表的每一行进行比较,并找出满足连接谓词的组合。当连接谓词被满足,A和B中匹配的行会按列组合(并排组合)成结果集中的一行。
3.内连接分三种:交叉连接、相等连接和自然连接。
4.内连接语法:
SELECT fieldlist FROM table1[INNER] JOIN table2
ON table1.column1=table2.column2
[where condition]
语法说明:
1.fieldlist:table1表和table2表中的字段列。如果fieldlist 取两张表所有列,则课用“*”代替,此时会出现连接依据重复,即table1表的column1与table2表的column2为重复列。
2.table1[INNER] JOIN table2:将table1表与table2表进行内连接,INNER 可省略。
3.table1.column1=table2.column2:连接条件,其中column1和column2为table1表与table2表的关联列,通常它们为外键和主键列。
4.“inner”可省略。
5.“where condition”可以省略,它为查询条件表达式。
内连接案例:使用内连接获取所有的路线信息和车辆信息。
SELECT *
from line
JOIN vehicle
ON line.lineID=vehicle.lineID
分析:
1.车辆表vehicle 与线路表line存在一个连接依据列——lineID。
2.连接以上两张表,使用内连接并采用“*”作为字段列表
3.“lineID”和“lineID1”为重复列,它们是连接依据列。
下一篇讲多表连接,敬请期待