Maison  >  Article  >  Java  >  JAVA外连接

JAVA外连接

巴扎黑
巴扎黑original
2016-11-26 09:17:521572parcourir

外连接分为左外连接,右外连接以及全外连接。前面我们学习的内连接获得是满足条件的记录,连接查询的表中不满足条件的记录被去掉。而外连接的特点是:查询出的结果存在不满足条件的可能。 
1.左外连接 
左外连接是将左表的所有记录查询出来,左表中不满足条件的记录对应的右表中的列的值显示为NULL。左外连接的关键词是:LEFT OUTER JOIN,对应的sql语句如下: 
SELECT * FROM 表1 别名1 LEFT OUTER JOIN 表2 别名2 ON 别名1.列名=别名2.列名 
其中表1就是左表,又称为主表,表2是右表。 
使用左外连接查询出每个员工的信息以及所在部门信息,对应的查询语句是:select * from emp e left outer join dept d on e.deptno=d.deptno, 
由查询结果可知当左表的记录不满足条件时,右表的列的值为null。 
2.右外连接 
右外连接是将右表中的所有记录查询出来,右表中不满足条件的记录对应的左表中的列的值显示为NULL。右连接的关键词是:RIGHT OUTER JOIN,对应的sql语句如下: 
SELECT * FROM 表1 别名1 RIGHT OUTER JOIN 表2 别名2 ON 别名1.列名=别名2.列名 
其中表1是左表,表2是右表,又称为主表。 
使用右外连接查询出每个部门的信息,以及部门的员工信息,对应的查询语句是:select * from emp e right outer join dept d on e.deptno=d.deptno, 
3.全外连接 
全外连接对左表和右表都不做限制,所有的记录都显示,两表中不满足条件的地方用null填充。全外连接的关键词是:FULL OUTRE JOIN,对应的sql语句如下: 
SELECT * FROM 表1 别名1 FULL OUTER JOIN 表2 别名2 ON 别名1.列名=别名2.列名 
MySQL数据库不支持全外连接,但是从分析来看,全外连接就是将左外连接以及右外连接的结果合并起来。 
使用全外连接查询emp表和dept表的信息 
SELECT 

FROM 
emp e LEFT OUTER JOIN dept d 
ON 
e.deptno=d.deptno 
UNION 
SELECT 

FROM 
emp e RIGHT OUTER JOIN dept d 
ON 
    e.deptno=d.deptno 
图1-3的查询结果中,两个表中不满足条件的对应位置用null代替。 
使用左外连接查询,左表是e1,因此e1表中的所有员工姓名都被查询出来,e2表中不满足条件的位置用null代替。

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:对象的序列化Article suivant:经典设计模式在JDK中的体现