前言
练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。
今日题目:
1495.上月播放的儿童适宜电影
表:TVProgram
列名 | 类型 |
---|---|
program_date | date |
content_id | int |
channel | varchar |
(program_date, content_id) 是该表的主键(具有唯一值的列的组合)。该表包含电视上的节目信息。
content_id 是电视一些频道上的节目的 id。
表:Content
列名 | 类型 |
---|---|
content_id | varchar |
title | varchar |
kids_content | enum |
content_type | varchar |
content_id 是该表主键(具有唯一值的列)。
Kids_content 是枚举类型, 取值为(‘Y’, ‘N’), 其中:
‘Y’ 表示儿童适宜内容, 而’N’表示儿童不宜内容。
content_type 表示内容的类型, 比如电影, 电视剧等。
编写解决方案, 报告在 2020 年 6 月份播放的儿童适宜电影的去重电影名.
我那不值一提的想法:
- 首先梳理表内容,题干一共给了两张表,一张电视节目表,记录了节目日期,内容id,频道。一张内容表,记录了内容id,节目名,是否适宜儿童观看,内容类型。
- 其次分析需求,需要找到2020年6月播放的儿童适宜电影的去重电影名
- 对于这道题,首先要做的肯定是筛选2020-06的日期
- 然后在通过content_id左连接内容表。筛选出kids_content = "Y"并且conten_type = “Movies” 的所有数据。
select distinct c.title
from TVProgram t
left join Content c
on t.content_id = c.content_id
where substr(program_date,1,7) = "2020-06"
and kids_content = "Y"
and content_type = "Movies"
结果:
总结:
能运行就行。