我是靠谱客的博主 殷勤乌龟,最近开发中收集的这篇文章主要介绍java左右连接sql写法_SQL 表连接(内外连接,左右连接及全连接),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

none.gifSQL提供了多种类型的连接方式,它们之间的区别在于:从相互交叠的不同数据集合中选择用于连接的行时所采用的方法不同。

none.gif连接类型        定义

none.gif内连接           只连接匹配的行

none.gif左外连接        包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行,a.order_id = b.order_id(+)

none.gif右外连接        包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行,a.order_id(+) = b.order_id

none.gif全外连接        包含左、右两个表的全部行,不管另外一边的表中是否存在与它们匹配的行。

一、外连接:选出包含其他不匹配的内容。

1、左连接:以左边的数据为基准

1)left join或left outer join

2)条件a=b(+),以a表数据为基准。

SELECT *

FROM TESTA

LEFT OUTER JOIN TESTB

ON TESTA.A=TESTB.A

Oracle 支持另一种写法

SELECT *

FROM TESTA,TESTB

WHERE TESTA.A=TESTB.A(+)

三个表做左外连接

SELECT *

FROM TESTA

LEFT OUTER JOIN TESTB

ON TESTA.A=TESTB.A

LEFT OUTER JOIN TESTC

ON TESTA.A=TESTC.A

Oracle 支持的另外一种写法

SELECT *

FROM TESTA,TESTB,TESTC

WHERE TESTA.A=TESTB.A(+)

AND TESTA.A=TESTC.A(+)

2、右连接:以右边的数据为基准

1)right join或right outer join

2)条件a(+)=b,以b表数据为基准。

右外连接是在等值连接的基础上加上被连接表的不匹配数据

SELECT *

FROM TESTA

RIGHT OUTER JOIN TESTB

ON TESTA.A=TESTB.A

Oracle支持的另一种写法

SELECT *

FROM TESTA,TESTB

WHERE TESTA.A(+)=TESTB.A

3、全外连接 full outer join 或者 full join

全外连接是在等值连接的基础上将左表和右表的未匹配数据都加上

SELECT *

FROM TESTA

FULL OUTER JOIN TESTB

ON TEST A.A=TESTB.A

全外连接的等价写法,对同一表先做左连接,然后右连接

SELECT  TESTA.*,TESTB.*

FROM TEST A

LEFT OUTER JOIN TESTB

ON TEST A.A=TESTB.A

UNION

SELECT TESTA.*,TESTB.*

FROM TESTB

LEFT OUTER JOIN TESTA

ON TEST A.A=TESTB.A

二、内连接:选出两表中相互匹配的记录

内连接,即最常见的等值连接

例1:直接等式

SELECT *

FROM TESTA,TESTB

WHERE TEST A.A=TESTB.A

例2:使用inner join

SELECT *

FROM TEST A  inner join TEST B

on TEST A.A=TEST B.A

最后

以上就是殷勤乌龟为你收集整理的java左右连接sql写法_SQL 表连接(内外连接,左右连接及全连接)的全部内容,希望文章能够帮你解决java左右连接sql写法_SQL 表连接(内外连接,左右连接及全连接)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部