sqlserver连接查询的补充
1. 连接查询的补充
(1) 内连接查询(两张表匹配的部分,比如这个学生即在学生表、又在成绩表)
主表 inner join 从表 on 主键=外键 => where 主键=外键
select * from info inner join mark on info.sid=mark.sid
select * from info,mark where info.sid=mark.sid
(2) 外连接查询(一张表的全部和另一张表的部分或全部,比如这个学生没有成绩)
① 左外连接:左表 left [outer] join 右表 on 主键=外键 ->左表的全部
② 右外连接:左表 right [outer] join 右表 on 主键=外键 ->右表的全部
select * from info left outer join mark on info.sid=mark.sid->+全部学生,不管这个有没有成绩。如果有成绩,则输出成绩;如果没有,则输出null。
如何选择?一旦要求查询某张表内的全部数据,一定首先使用外连接!!!