力扣-数据库题目解析
Database
在数据库方面能力比较弱,通过多加练习,掌握一些常用的套路
基本语法顺序
**SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
LIMIT**
组合两个表.
组合两个表,使用left join on:
- 因为表 Address 中的 personId 是表 Person 的外关键字 ,可以使用这个字段关联两个表;
select p.FirstName,p.LastName, a.City,a.State from Person p
left join Address a on p.PersonId = a.PersonId;
第二高的薪水
- 题目要求如果不存在 第二高的薪水则返回null
- 使用函数 ifnull (expr1,expr2)当expr1不为null 时,返回expr1的值,否则返回expr2的值
- order by 和 group by 一起使用:order by 中列,应该出现在group by 子句中
select ifnull( (select distinct Salary from Employee order by Salary desc
limit 1, 1), null ) as SecondHighestSalary;