sql中联结表

什么是联结表?

联结,用来在一条SELECT语句中关联表,因此称为联结。使用特殊语法,可以联结多个表返回一组输出,联结在运行时关联表中正确的行

什么时候使用联结?

当数据存储在多个表中,使用联结,用一条SELECT语句就检索出数据

如何创建联结

指定要联结所有表以及关联它们的方式:
a 表

idname
1pen
2book

b 表

idprice
1$20
2$50
//创建联结
SELECT  name,price  FROM a,b  WHERE  a.id = b.id;

联结两个表,实际是将第一个表中的每一行与第二个表中的每一行配对,WHERE子句作为过滤条件,只包含那些匹配给定条件(联结条件)的行。
没有WHERE子句,第一个表中每一行与第二个表中每一行配对,不管它们逻辑上是否能配在一起

沒有WHERE子句,返回笛卡儿积联结,也称为叉联结
SELECT  name,price  FROM a,b;

笛卡儿积
由没有联结条件的表关系返回的结果为笛卡儿积,减少出的行的数目是第一个表中的行数乘以第二个表中的行数

内联结

内联结(inner join)称为等值联结
下面的SELECT语句返回与前面例子完全相同的数据,联结条件用特定ON子句而不是WHERE子句 。

SELECT  name,price   FROM  a   INNER   JOIN   b  on   a.id = b.id;

外联结(左外联结、右外联结、全外联结)

左外联结

左外联结就是保留左边表的所有数据,连接的表如果没有就是null

SELECT name,price FROM a  LEFT OUTER JOIN b  on   a.id =b.id;

实例图
在这里插入图片描述

右外联结

右外联结就是保留左边表的所有数据,连接的表如果没有就是null

SELECT name,price FROM a  RIGHT OUTER JOIN b  on   a.id =b.id;

实例图
在这里插入图片描述

全外联结(full outer join),包含两个表的不关联的行

SELECT name,price FROM a  FULL OUTER JOIN b  on   a.id =b.id;

实例图
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值