1.链接运算由两部分构成:链接类型与链接条件sql
链接类型可分为测试
INNER JOIN(等值链接)spa
LEFT JOIN(左联接) 基础
RIGHT JOIN (右联接) 返回包括右表中的全部记录和左表中联结字段相等的记录select
链接条件可分为sql语句
NATURAL 天然链接(去掉重复属性)搜索
ON 链接条件(保留重复属性)join
USING 属性名1,属性名2… (保留指定重复属性)实例
2.操做实例
表A记录以下:
aID aNum
1 a2016001
2 a2016002
3 a2016003
4 a2016004
5 a2016005
bID bName
1 bmumu001
2 bmumu002
3 bmumu003
4 bmumu004
6 bmumu006
测试以下:
1.left join
sql语句以下:
select * from A left join B on a.aID=b.bID
结果以下:
aID aNum bID bNAME
1 a2016001 1 bmumu001
2 a2016002 2 bmumu002
3 a2016003 3 bmumu003
4 a2016004 4 bmumu004
5 a2016005 NULL NULL
结果说明:
left join 是以A表的记录为基础的,A能够当作左表,B能够当作右表,left join 是以左表为准的.换句话说,左表(A)的记录将会所有显示出来,
而右表(B)只会显示符合搜索条件的记录(a.aID=b.bID),B表记录不足的地方均为NULL
2.right join
sql语句以下:
select * from A right join B on a.aID=b.bID
结果以下:
aID aNum bID bNAME
1 a2016001 1 bmumu001
2 a2016002 2 bmumu002
3 a2016003 3 bmumu003
4 a2016004 4 bmumu004
NULL NULL 6 bmumu006
结果说明:
仔细观察一下,就会发现和left join的结果刚刚相反, right join 是以B表的记录为基础的,A表记录不足的地方用NULL填充
3.inner join
sql语句以下:
select * from A inner join B on a.aID=b.bID
结果以下:
aID aNum bID bNAME
1 a2016001 1 bmumu001
2 a2016002 2 bmumu002
3 a2016003 3 bmumu003
4 a2016004 4 bmumu004
结果说明:
很明显,inner join 只显示了 a.aID=b.bID的记录,这说明inner join 只显示符合条件的记录