jion 语句有三种,inner join, left outer join 和 right
outer join 都可以简写,分别为jion,left join,right
jion。
jion语句可以用来组合两个表中的记录,只要在公共字段之中有相符的值即可,该语句联合两个表查询得到的结果是可以添加新的数据,可以把它看成将两个具有相关内容的表联接在一起新生成的表,而一般的select
语句没有这个功能。
1)
内连接,inner join ... on
语句格式:
from
(((表1 inner join 表2 on 表1.字段号=表2.字段号) inner
join 表3 on 表1.字段号=表3.字段号) inner join 表4 on
member.字段号=表4.字段号) inner join 表x on
member.字段号=表x.字段号
例子:
select
*
from
(((member inner join membersort on
member.membersort=membersort.membersort) inner join memberlevel on
member.memberlevel=memberlevel.memberlevel) inner join
memberidentity on
member.memberidentity=memberidentity.memberidentity) inner join
wedlock on member.wedlock=wedlock.wedlock
order by
memberdate desc
内连接的功能是,把两个表相关联的记录列出来,必须是相关联的记录。
2)
左外连接,left outer join ... on
语句格式:
from [表名1] left join [表名2]
on [表名1.字段a] 〈关系运算符〉[表名2.字段b]
其实left join
的功能就是将left左边的表名1中的所有记录全部保留,而将右边的表名2中的字段b与表名1.字段a相对应的记录显示出来(当使用select
* 时)。而right join 和left join 相反。
外连接的功能是,把left左边的表中的所有记录保留,而右边表只保留相关联的记录,也就是先执行一次inner
join,然后把left左边的表中的与右边表没有任何关联的记录也保留,而右边表的字段为null.
3)
右外连接,right outer join ... on
与 left
join左右相反。
4)
全连接,full join ...
on(不常使用,只能用于outer)
功能结合了以上三种联军,先执行一次inner
join,然后把两个表的多余字段都保留,但连接的对应字段为null.
如果想将几个表联接起来,在join操作中我们可以进行嵌套操作,有三个表:表1、表2、表3,现在将三个表联接起来:
from (表1 inner join 表2 on 表1.序号=表2.序号)
inner join 表3 on 表1.序号=表3.序号