探究内连接,外连接,交叉连接
(一)内连接
内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。
内连接分三种:
1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。
使用等值连接,,在选择列表中列出LandTbl和TownTbl表中重复列(TownCode):
例:Select * from LandTbl as A inner join TownTbl as B on A.TownCode=B.TownCode
2、不等连接:在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。
这些运算符包括>、>=、<=、<、!>、!<和<>。
例:Select * from LandTbl as A inner join TownTbl as B on A.TownCode<>B.TownCode
3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。
使用自然连接,在选择列表中删除LandTbl和TownTbl表中重复列(TownCode):
Select A.*, B.CityCode, B.TownName from LandTbl as A inner join TownTbl as B on A.TownCode=B.TownCode
(二)外连接
内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。
左外连接,显示符全条件的数据行及左边数据表中不符合条件的数据行
例:
Select A.*, B.CityCode, B.TownName from LandTbl as A left (OUTER) join TownTbl as B on A.TownCode=B.TownCode
右外连接,显示符全条件的数据行及右边数据表中不符合条件的数据行
例:
Select A.*, B.CityCode, B.TownName from LandTbl as A right (OUTER) join TownTbl as B on A.TownCode=B.TownCode
全外连接,显示符全条件的数据行及左边和右边数据表中不符合条件的数据行
例:
Select A.*, B.CityCode, B.TownName from LandTbl as A full (OUTER) join TownTbl as B on A.TownCode=B.TownCode
(三)交叉连接
交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。
select A.*, B.CityCode, B.TownName from LandTbl cross join TownTbl
(-^_^-)
附(供參考):
表TownTbl
栏位名称 中文描述
CityCode 县市代码
TownCode 乡镇代码
TownName 乡镇名称
表LandTbl
栏位名称 中文描述
LandCode 土地代号
LandName 土地名称
LandQty 土地面积
TownCode 乡镇代码
Type 土地类别
***********************************************************************