MySQL -> DQL:SQL92语法:连接查询:连接两个表格进行查询(内连接)

表A

name			boyid
柳岩				8
苍老师				9
Angelababy			3
热巴				2
周冬雨				9
周芷若				1
岳灵珊				9
小昭				1
双儿				9
王语嫣				4
夏雪				9
赵敏				1
表B

id  boyname    
1	张无忌	
2	鹿晗		
3	黄晓明	
4	段誉		

等值连接:

“查询两个表中的数据,数据互相有关系”:使用where给定连接条件:两表的重叠部分

# 内连接不区分主从表
# 如果不使用where :A表中的每个数据都会匹配B中的数据,一共会出现A*B行数据;
# 因为from是最先执行的,如果起了别名,以后都只能使用别名,类推order by的别名是最后的所以前面不用使用别名
"查询两个表中的数据,数据互相有关系":使用where给定连接条件:两表的重叠部分
select name,boyName 
from 表A AS A,表B AS B
where A.boyid = B.id;# 这是连接俩表的条件,必须要有联系

结果
name		boyname
周芷若		张无忌
小昭		张无忌
赵敏		张无忌
热巴		鹿晗
Angelababy	黄晓明

非等值连接:

“查询工资级别为A级别的员工信息”:

"查询工资级别为A级别的员工信息":
select 员工信息
from A,B
where A.工资 between B.最底工资 and B.最高工资
and B.工资级别 = 'A';

表B:
工资级别	最低工资  最高工资
A  		1000     2000
B  		2000     3000
# 1.A中有数据对应着B中的数据,等值
# 2.A中有数据与B中的数据有一定的条件关系,非等值

自连接:一张表多次使用,自己连自己

"查询员工id对应的上级id":上级也是员工
select A.员工id,A.上级员工id
fromas A;# 现在就是只有name和上级id的一个新的表

"接着查询上级id对应的名字":A,B都是同一个表,使用两次,被当做了两个表
select A.员工id,A.上级员工id,B.员工id,B.name
fromas A,as B;
where A.上级员工id = B.员工id;

表:
员工id   name   	上级员工id
100		K_ing		null
101		罗德是神		100
102		De Haan		100
103		Hunold		102
104		Ernst		103
105		Austin		103

如:
员工id=101的上级员工id=100
上级员工id=100,他的名字是K_ing
先找id是101的员工,10的员工的上级员工id是100,找到对应的员工id是9的员工,对应的名字是什么;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值