前言
练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。
今日题目:
1421.净现值查询
表:NPV
列名 | 类型 |
---|---|
id | int |
year | int |
npv | int |
(id, year) 是该表主键(具有唯一值的列的组合).
该表有每一笔存货的年份, id 和对应净现值的信息.
表:Queries
列名 | 类型 |
---|---|
id | int |
year | int |
(id, year) 是该表主键(具有唯一值的列的组合).
该表有每一次查询所对应存货的 id 和年份的信息.
编写解决方案,找到 Queries 表中每一次查询的净现值。
我那不值一提的想法:
- 首先梳理表内容,题干一共给了两张表,一张npv表,记录了存货id,日期,以及npv值,一张查询表,记录了查询id,还有存货年份信息。
- 其次分析需求,需要找到查询表中每一次查询的净值
- 这道题思路比较简单,直接查询表左连接npv表,条件就是id和年份需要相等。
select q.id,q.year,ifnull(n.npv,0) as npv
from Queries q
left join NPV n
on q.id = n.id and q.year = n.year
结果:
总结:
能运行就行。