左连接与右连接

左连接与右连接

多表查询即连接查询,通过外键去连接。

内连接查询inner join: 只返回两个表中跟联结字段(外键)相等的记录;从左边的表往右边的表查找能匹配的记录,无匹配的记录行不显示。
SQL语句:select 表名1.,表名2. from 表名1 inner join 表名2 on (表名1.列名=表名2.列名);

外连接outer join
left join(左联接): 以左表为基准,返回包括左表中的所有记录和右表中跟联结字段相等的记录,即包含所有的左边表中的所有记录,右边表中和它匹配的记录。左右两张表按某个列进行关联查找,左连接以左边的表为基础表,基础表的数据全部都查找出来,右边的表如果有和左边的表的条件相符的数据就查找出来,如果条件不相接符就用null显示。
left outer join left join
SQL语句:select 表名1.,表名2. from 表名1 left outer join 表名2 on (表名1.列名=表名2.列名);

right join(右联接):以右表为基准,返回包括右表中的所有记录和左表中跟联结字段相等的记录,即包含所有的右边表中的所有记录,左边表中和它匹配的记录。
right outer join right join
select 表名1.,表名2. from 表名1 right outer join 表名2 on (表名1.列名=表名2.列名);

示例:
A表(a1,b1,c1) B表(a2,b2)
a1 b1 c1 a2 b2
数学 95 01 01 张三
语文 90 02 02 李四
英语 80 04 03 王五

内连接:
SQL语句: select a.,b. from a,b where a.c1=b.a2;
执行结果如下图所示:

SQL语句:select a.,b. from a inner join b on(a.c1=b.a2);
执行结果如下图所示:

左连接:
SQL语句:select A.,B. from A left outer join B on(A.c1=B.a2);
执行的结果如下图所示:

右连接:select A.,B. from A right outer join B on(A.c1=B.a2);
执行的结果如下图所示:

原文地址:https://www.cnblogs.com/xianmin/p/14017000.html