MySQL基础入门之连接

连接

连接大致分为内连接、外连接、交叉连接、自连接等等。

 

外连接就是一个表当做基表,然后根据匹配条件来显示其他表的内容的连接。它又可以分为左连接、右连接、全连接。

#左连接 将表1作为基表进行匹配

select 列名列表 from 表1 left join 表2 其他条件;

select * from aa left join bb on aa.id = bb.id;

select * from aa left join bb on aa.id = bb.id where aa.id = bb.id;//on为左连接提供一个规则,where则用于筛选结果


#右连接就是将left换成right即可

select * from aa right join bb on aa.id = bb.id;


#全连接就是将左连接left换成full即可,但是MySQLB并不支持全连接,如果使用则变成交叉连接一样的结果

#全连接就是将左右连接的结果做一个并集的运算

(select * from aa left join bb on aa.id = bb.id) union (select * from aa right join bb on aa.id = bb.id);

select * from aa full join bb;


#交叉连接 就是表与表之间进行笛卡尔乘积,主要就是可以再结果中包含所有的情况。

#可以使用cross join或者中间加,号即可,但是使用逗号的时候,后面使用on会报错。

select * from aa cross join bb;

select * from aa ,bb where aa.id = bb.id;


#内连接 不指定条件的内连接就是交叉连接,一般会使用on来指定相应的条件。也分为三种均等连接、不等连接、自然连接。

select * from aa inner join bb on aa.id = bb.id;

#using 关键字等价于等号,但是他会将aa的id和bb的id并成一列。

select * from aa inner join bb using(id);


#自然连接 natural join

就是一种特殊的等值连接,即在结果集中把重复的属性列去掉,和使用using关键字的效果是一样的。

select * from aa natural join cc;

#自连接 自己和自己连接,相当于把一个表当成两个表使用

select a.id,a.name,a.dept,b.name from staff a left join staff b on a.dept = b.dept where a.name != b.name order by a.ids

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值