内连接、左外连接、右外连接、交叉连接及其区别

xiaoxiao2021-02-28  93

转载自:http://blog.csdn.net/xukun5137/article/details/51722960

在学习mybatis,发现数据库这块学的不好,又找资料学习一下。发现这篇讲内连接外连接的还不错,就转载过来了,顺便添加点自己学到的内容(SQL查询艺术一书)。

首先建立两张表AB

A

Aidint类型,无符号递增,主键

namevarchar类型

B

Bidint类型,无符号递增,主键

namevarchar类型

ageint类型

 

内连接(INNER JOIN JOIN默认为INNER JOIN

利用内连接可获取两表的公共部分的记录。会显示两张表匹配的所有列信息

select * from A JOIN B ON A.name=B.name

外连接

外连接分为两种,左连接(Left JOIN)和右连接(Right JOIN)

左连接(Left JOIN) 左外连接=内连接+左边表中失配的元组

select * from A Left JOIN B ON A.name=B.name

右连接(Right JOIN) 右外连接=内连接+右边表中失配的元组

select * from A Right JOIN B ON A.Aid=B.Bid

全外连接(FULL OUTER JOIN)

全外连接=内连接+左边表中失配的元组+右边表中失配的元组

交叉连接(CROSS JOIN)

有两种,显式的和隐式的,不带ON子句,返回的是两表的乘积,也叫笛卡尔积。

显式:

select A.*,B.* from A CROSS  JOIN B ON A.name=B.name

隐式:

select A.*,B.* from A ,B WHERE A.name=B.name

转载请注明原文地址: https://www.6miu.com/read-56543.html

最新回复(0)