zoukankan      html  css  js  c++  java
  • SQL查询--关于查询的练习题

    下面的练习题出自LeetCode:https://leetcode-cn.com/problemset/database/,有兴趣的可以去上面刷刷题

    练习题1:超过经理收入的员工

     

     分析:

    使用sql自连接查询,因为员工Id和经理的ManagerId都在同一个表,使用自连接,可以把一张表看作2张表来使用,一张为员工表ygb,一张为经理表jlb;

    查询思路就是:筛选出员工表的ManagerId与经理表的Id相等的记录,然后在这些记录中筛选员工表的Salary大于经理表的Salary的记录

    SELECT *  FROM employee ygb,employee jlb WHERE ygb.ManagerId = jlb.Id 

    SELECT *  FROM employee ygb,employee jlb WHERE ygb.ManagerId = jlb.Id AND ygb.Salary>jlb.Salary

    SELECT ygb.name AS Employee FROM employee ygb,employee jlb WHERE ygb.ManagerId = jlb.Id AND ygb.Salary>jlb.Salary

    练习题2:删除重复的电子邮箱

    分析:
    先使用自连接查询,用自身表和自己比较,来判断哪些重复邮箱

    SELECT * FROM Person p1, Person p2

    这样得到一个2个相同表的笛卡尔积,即两张表的组合结果

     可以分别查询p1.*和p2.*

     接着查重

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

    然后删除重复数据即可

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

    2019-09-04 22:47:00

  • 相关阅读:
    第14周总结
    第十三周总结
    第十二周总结
    第十一周总结
    第十次助教小结
    第九次小结-关注的助教
    第八次点评
    助教总结
    助教小结13
    助教小结12
  • 原文地址:https://www.cnblogs.com/hanmk/p/11462071.html
Copyright © 2011-2022 走看看