6.Mysql自连接

针对相同的表进行的连接被称为“自连接”(self join)

那么为什么要把相同的一张表连接起来呢?一开始还是挺难理解的。把它想象成连接两张不同的表,这样容易理解一些。事实上,自连接还是有很多用处的

1. 在同一张表内进行比较

1.1查找收入超过各自经理的员工的姓名

SELECT e1.Name AS employee_name
FROM Employee AS e1, Employee AS e2
WHERE e1.ManagerId=e2.Id AND e1.Salary>e2.Salary

1.2查找比昨天温度高的所有日期的 Id

SELECT w1.Id  FROM weather w1
JOIN weather w2
ON DATEDIFF(w1.RecordDate,w2.RecordDate)=1   # DATEDIFF函数用于返回两个日期的天数
WHERE w1.Temperature>w2.Temperature

1.3查找共用同一车站的所有公交路线

SELECT * FROM route R1, route R2  WHERE R1.stop=R2.stop

1.4查找价格相同但商品名称不同的商品信息

SELECT DISTINCT P1.name, P1.price FROM Products P1, Products P2
WHERE P1.price = P2.price AND P1.name != P2.name;

1.5删除 Person 表中所有重复的电子邮箱

DELETE p1 FROM Person p1, Person p2 WHERE p1.Email = p2.Email AND p1.Id > p2.Id

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值