[转自]http://www.cnblogs.com/cy163/archive/2008/10/16/1312920.html
通俗的讲:
A left join B 的连接的记录数与A表的记录数同
A right join B 的连接的记录数与B表的记录数同
A left join B 等价B right join A
table A:
Field_K, Field_A
1 a
3 b
4 c
table B:
Field_K, Field_B
1 x
2 y
4 z
select a.Field_K, a.Field_A, b.Field_K, b.Field_B
from a left join b on a.Field_K=b.Field_K
Field_K Field_A Field_K Field_B
---------- ---------- ---------- ----------
1 a 1 x
3 b NULL NULL
4 c 4 z
select a.Field_K, a.Field_A, b.Field_K, b.Field_B
from a right join b on a.Field_K=b.Field_K
Field_K Field_A Field_K Field_B
---------- ---------- ---------- ----------
1 a 1 x
NULL NULL 2 y
4 c 4 z --





































--





--







--































































































































--






















































































关于SQL数据库中cross join 和inner join用法上的区别
[转自]http://zhidao.baidu.com/question/146995521.html
举个简单的例子吧,从结果来理解比较具体些。 a表 name sex 张三 男 李四 女 b表 name age 李四 30 王五 23 1\全外连接 select a.name,a.sex,b.name,b.age from a full outer join b on a.name=b.name 结果如下, name sex name age 张三 男 NULL NULL 李四 女 李四 30 NULL NULL 王五 23 关联字段name,左表有而右表没有的,如张三,b.name,b.age都为NULL,加上左右两边都有的就是左连接的结果;而右表有而左表表没有的,如王五,a.name,a.sex都为NULL,加上左右两边都有的就是右连接的结果;左右两边都有的如,李四,这就是内连接。相见如下 2\左 select a.name,a.sex,b.name,b.age from a left outer join b on a.name=b.name 结果如下 name sex name age 张三 男 NULL NULL 李四 女 李四 30 2\右 select a.name,a.sex,b.name,b.age from a right outer join b on a.name=b.name 结果如下 name sex name age 李四 女 李四 30 NULL NULL 王五 23 3\内联 select a.name,a.sex,b.name,b.age from a inner join b on a.name=b.name 结果如下 name sex name age 李四 女 李四 30 4\交叉 select a.name,a.sex,b.name,b.age from a cross join b on a.name=b.name 结果如下 name sex name age 张三 男 李四 30 李四 女 王五 23 张三 男 王五 23 李四 女 李四 30