前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sql连接查询(inner join、full join、left join、 right join)

sql连接查询(inner join、full join、left join、 right join)

作者头像
用户2409797
发布2018-08-30 17:29:05
4.1K0
发布2018-08-30 17:29:05
举报
文章被收录于专栏:Java修行之道Java修行之道

sql连接查询(inner join、full join、left join、 right join)

一、内连接(inner join)

首先我这有两张表

1、顾客信息表customer

2、消费订单表orders

注意:顾客与订单之间是一对多关系

需求:查询哪个顾客(customer_name)在哪一天(create_time)消费了多少钱(money)

sql语句:

代码语言:javascript
复制
select c.customer_name, o.create_time, o.money
from customer c, orders o
where c.id = o.customer_id

sql语句也可以这样写:

代码语言:javascript
复制
select c.customer_name, o.create_time, o.money
from customer c inner join orders o
on c.id = o.customer_id

结果:

内连接的过程:

将符合条件的记录组合起来,放在一张新表里面

二、左连接(left join)

需求:查询哪个顾客(customer_name)在哪一天(create_time)消费了多少钱(money)

sql语句:

代码语言:javascript
复制
select c.customer_name, o.create_time, o.money
from customer c 
left join orders o
on c.id = o.customer_id

结果:

从结果可以很清楚的明白左连接的含义:

将左边表的所有记录拿出来,不管右边表有没有对应的记录

三、右连接(right join)

需求:查询哪个顾客(customer_name)在哪一天(create_time)消费了多少钱(money)

sql语句:

代码语言:javascript
复制
select c.customer_name, o.create_time, o.money
from customer c 
right join orders o
on c.id = o.customer_id

结果:

从结果可以很清楚的明白右连接的含义:

将右边表的所有记录拿出来,不管右边表有没有对应的记录

四、全连接(full join)

这里要注意的是mysql本身并不支持全连接查询,但是我们可以使用UNION关键字实现

sql语句:

代码语言:javascript
复制
select c.customer_name, o.create_time, o.money
from customer c 
left join orders o
on c.id = o.customer_id

UNION

select c.customer_name, o.create_time, o.money
from customer c 
right join orders o
on c.id = o.customer_id

结果:

从sql语句中可以清楚的看到:

使用UNION关键字将左连接和右连接,联合起来

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-09-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • sql连接查询(inner join、full join、left join、 right join)
    • 一、内连接(inner join)
      • 1、顾客信息表customer
      • 2、消费订单表orders
    • 二、左连接(left join)
      • 三、右连接(right join)
        • 四、全连接(full join)
        相关产品与服务
        云数据库 SQL Server
        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档