一.内连接查询
1.交叉连接(笛卡尔积,叉乘)
select * from 表名1 cross join 表名2 等同于 select * from 表名1 ,表名2
2.相等连接
select * from 表名1 join 表名2 on 表名1 . 字段名 = 表名2 .字段名
3.自然连接(去掉名称相同的列)注:sql sever 是不支持自然连接的
select * from 表名1 natural join 表名2
注:连接依据的列可能包括null值,null值不予任何值匹配(甚至和它本身)
二. 多表连接查询
1.多表连接查询
select * from 表名1 join 表名2 on 表名1 . 字段名 = 表名2 . 字段名 join 表名3 on 表名2 . 字段名=表名3 .字段名
2.简单的多表连接查询
select * from 表1 ,表2 ,表3 where 表1 .字段名 =表2 .字段名 and 表2 .字段名 = 表3 .字段名【and其他条件】
三.外连接查询
1.左外连接
查询的结果集中包括左表中的记录,和右表中满足条件的记录
select * from 左表 left join 右表 on 左表 . 字段名 = 右表 . 字段名 where 条件
2.右外连接
查询的结果集中包括右表中的记录,和左表中满足条件的记录
select * from 右表 right join 左表 on 右表 . 字段名 = 左表 . 字段名 where 条件
注:结果集中那些不符合连接条件的来源于右表null
四.连接查询综合应用
1.简单连接查询
select 字段名 from 表1 ,表2 where 表1 .字段名=表2 .字段名