一篇搞定DQL查询之连接查询——交叉连接、内连接、左外连接、右外连接、全连接

1、连接查询的基本语法

from TABLE1 join_type TABLE2 [on (join_condition)] [where (query_condition)]

TABLE1:左表(在连接类型左边的表)

TABLE2:右表(在连接类型右边的表)

 join_type:连接的类型。交叉、内连接、左外连接、右外连接

on:设置连接条件,是非必须的

where:对连接查询的结果进一步的筛选,是非必须的

2、交叉连接

cross join:不带on子句,返回连接表中所有数据的笛卡尔积

比如A表有5条数据、B表有6条数据,那他们的笛卡尔积就是30条。

select * from CUSTOMER cross join ORDERS;

或者

select * from CUSTOMER,ORDERS;

select c.name,o.order_number from CUSTOMER c,ORDERS o;

3、内连接

内连接:分为隐式内连接显式内连接,返回连接表中符合连接条件,以及符合查询条件的数据。

隐式内连接:(不使用on关键字,使用where)

select * from CUSTOMER c,ORDERS o where c.id=o.customer_id;

显式内连接:(使用on关键字)

select * from CUSTOMER c inner join ORDERS o on c.id=o.customer_id;

4、外连接

外连接:分为左外连接和右外连接。

和内连接不同的是,外连接不光返回连接表中符合连接条件以及符合查询条件的数据

它还会返回左表(左外连接)或右表(右外连接)中仅符合查询条件的但不符合连接条件的数据

左外连接:返回符合连接条件的所有记录,同时还返回左表中其余的所有记录,left outer join也可简写为left join

select * from CUSTOMER c left outer join ORDERS o on c.id=o.customer_id;

右外连接:返回符合连接条件的所有记录,同时还返回右表中其余的所有记录,right outer join也可简写为right join

select * from CUSTOMER c right outer join ORDERS o on c.id=o.customer_id;

5、全连接

full join:和外连接不同的是,全连接不光返回连接表中符合连接条件以及符合查询条件的数据

它还会返回两张表中仅符合查询件的数据

select * from CUSTOMER c full join ORDERS o on c.id=o.customer_id;

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曹举的个人博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值