打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

一、内连接(inner join)

首先我这有两张表

1、顾客信息表customer

2、消费订单表orders

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

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

sql语句:

select c.customer_name, o.create_time, o.moneyfrom customer c, orders owhere c.id = o.customer_id

sql语句也可以这样写:

select c.customer_name, o.create_time, o.moneyfrom customer c inner join orders oon c.id = o.customer_id

结果:

内连接的过程:

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

二、左连接(left join)

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

sql语句:

select c.customer_name, o.create_time, o.moneyfrom customer c left join orders oon c.id = o.customer_id

结果:

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

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

三、右连接(right join)

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

sql语句:

select c.customer_name, o.create_time, o.moneyfrom customer c right join orders oon c.id = o.customer_id

结果:

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

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

四、全连接(full join)

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

sql语句:

select c.customer_name, o.create_time, o.moneyfrom customer c left join orders oon c.id = o.customer_idUNIONselect c.customer_name, o.create_time, o.moneyfrom customer c right join orders oon c.id = o.customer_id

结果:

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

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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
SQL存储过程入门级教程6
多表查询(各种连接)
sql语句中left join、inner join中的on与where的区别
SQL中JOIN时条件放在Where和On的区别
mysql中的内连接,外连接实例详解
MySQL的联结(Join)语法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服