sql基础语法,联结

本文详细介绍了SQL中的联结操作,包括内联结、外联结、3张表以上的联结及交叉联结。内联结通过指定联结键筛选出两张表中匹配的数据。外联结分为左联结和右联结,确保至少一方表的所有数据都会出现在结果中。对于3张以上表的联结,只需添加更多的联结条件。交叉联结则会生成所有可能的行组合,其行数等于参与联结的表的记录数之积。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所谓联结,就是将其他表中的列添加过来。
01内联结–inner join
内联结就是以a表列作为桥梁,将b表满足同样条件的列汇集到同一结果之中(只能选择两张表中同时存在的数据

SELECT SP.shop_id,SP.shop_name,SP.product_id,P.product_name,
P.sale_price
FROM ShopProduct AS SP INNER JOIN PRODUCT AS P
ON SP.product_id=P.product_id

在这里插入图片描述内联结要点提示:
1.from 表1 inner join 表2。inner join 可以将两张表联结起来
2.on子句(联结键)on用来指定联结对象
同时使用=构建联结条件,若有多个条件可以使用and,or。如果有where,on必须写在from和where之间。因为where是限定条件,此时限定的条件应该是两个表共有的。
3.select 按照 表的别名.列名指定列可以避免混乱

02外联结–outer join
同内连接一样,外联结也是选择将满足同样条件的列汇总到一个表中。(只要一个表中拥有的数据,就可以进行外联结换句话说外联结针对的是一张表中所有数据

SELECT SP.shop_id,SP.shop_name,SP.product_id,P.product_name,
P.sale_price
FROM ShopProduct AS SP RIGHT OUTER JOIN PRODUCT AS P
ON SP.product_id=P.product_id

在这里插入图片描述使用外联结需要指定主表,使用关键字left,和right
left–左侧主表,right–右侧主表。选择哪个作为主表,这个表所有内容就会出现在结果表中。换句话说,就是以这个表作为基础
03 3张表以上的表联结
三张表以上表的连接,就是向其中添加连接条件

SELECT SP.shop_id,SP.shop_name,SP.product_id,P.product_name,
P.sale_price,P1.product_id,P1.product_name,P1.sale_price
FROM ShopProduct AS SP INNER JOIN PRODUCT AS P
ON SP.product_id=P.product_id
    INNER JOIN product3 AS p1
    ON SP.product_id=p1.product_id

在这里插入图片描述
04交叉联结–cross
交叉联结是对两张表中的全部记录进行组合,也就是说得到的行数会是两张表列数之积
这也就使在交叉联结不用使用联结键on指定连接内容

SELECT SP.shop_id,SP.shop_name,SP.product_id,P.product_name
FROM ShopProduct AS SP CROSS JOIN PRODUCT AS P

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值