前言
练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。
今日题目:
1068.产品销售分析I
销售表:Sales
列名 | 类型 |
---|---|
sale_id | int |
product_id | int |
year | int |
quantity | int |
price | int |
(sale_id, year) 是销售表 Sales 的主键(具有唯一值的列的组合)。product_id 是关联到产品表 Product 的外键(reference 列)。该表的每一行显示 product_id 在某一年的销售情况。
注意: price 表示每单位价格。
产品表:Product
列名 | 类型 |
---|---|
product_id | int |
product_name | varchar |
product_id 是表的主键(具有唯一值的列)。该表的每一行表示每种产品的产品名称。
编写解决方案,以获取 Sales 表中所有 sale_id 对应的 product_name 以及该产品的所有 year 和 price 。返回结果表 无顺序要求 。
我那不值一提的想法:
首先梳理表内容,题目一共给了两个表,第一个销售表,记录了销售id,产品id,交易时间,交易数量以及价格,第二个表记录了产品id和产品名,两个表中的产品id是同一个值。其次分析需求,需要获取销售表中对应该产品的产品名以及交易日期和价格,这个时候就需要两边连接,取所需要的值。
select p.product_name,s.year,s.price
from Sales s left join Product p
on s.product_id = p.product_id
结果:
总结:
能运行就行。