章节2:SQL之多表连接

Sql的多表连接关系有:内连接、外连接和交叉连接。

先建立两个用于演示的表:

TB_Characters:

IdCharacter
1内向
2外向
3中性性格

TB_Colors:

IdColor
1绿色
2红色
4蓝色

一、内连接:

内连接(JOIN  或 INNER JOIN):内连接取交集

示意图:

image

SELECT * FROM tb_characters INNER JOIN tb_colors ON tb_characters.ID = tb_colors.ID;

结果:

image

二、外连接:

外连接可分为:左连接、右连接、完全外连接。

1、左连接(LEFT JOIN):

示意图:

image

SELECT * FROM tb_characters LEFT JOIN tb_colors ON tb_characters.ID = tb_colors.ID;

结果:

image

2、右连接(RIGHT JOIN):

示意图:

image

SELECT * FROM tb_characters RIGHT JOIN tb_colors ON tb_characters.ID = tb_colors.ID;

结果:

image

3、完全外连接:

示意图:

image

select * from tb_characters LEFT JOIN tb_colors on tb_characters.ID=tb_colors.ID
UNION
select * from tb_characters RIGHT JOIN tb_colors on tb_characters.ID=tb_colors.ID

结果:

image

三、交叉连接( CROSS JOIN ):

交叉连接产生连接所涉及的表的笛卡尔积。

SELECT * FROM tb_characters CROSS JOIN tb_colors;

结果:

image


补充:

1、如下可获取内连接结果:

SELECT * FROM tb_characters,tb_colors WHERE tb_characters.ID = tb_colors.ID;

2、如下可获取交叉连接结果:

SELECT * FROM tb_characters,tb_colors;

作者: 韩兆新
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值