gpt4 book ai didi

WHERE 子句中的 MYSQL MIN

转载 作者:行者123 更新时间:2023-11-29 02:28:00 25 4
gpt4 key购买 nike

好吧,我正在研究家庭影院系统,为了显示电视剧列表,我一直在选择第一季的第一集并显示该集的相关信息,然后您可以向下钻取给他人。

这样我就可以将所有电影和所有电视节目保存在一个表中,这使得播放功能更加容易。

问题是,有些系列我在数据库中没有第一集,但无论如何我都希望它们出现,所以我想选择最少的季节/系列而不是第一集。

我不能将 MIN 放在 select 子句中,因为它只会选择一个系列,而且我不能将 LEAST 放在 WHERE 子句,因为它说它只是一个元素,因为它们的分组方式,我不能使用 LIMIT 因为它只会选择一个系列。

有没有办法不用多个复杂的子查询就可以做到这一点?

这是我目前正在使用的查询,CASE 子句是为了按正确的字母顺序从系列标题中删除 A/An/The:

SELECT *, CASE when substring(series,1,4) = 'The ' then substring(series, 5)
when substring(series,1,3) = 'An ' then substring(series, 4)
when substring(series,1,2) = 'A ' then substring(series, 3)
else series END AS sorttitle
FROM Theater.Videos WHERE type='TV' and season=1 and episode=1 ORDER BY sorttitle ASC

这基本上就是我想要的:

SELECT *, CASE when substring(series,1,4) = 'The ' then substring(series, 5)
when substring(series,1,3) = 'An ' then substring(series, 4)
when substring(series,1,2) = 'A ' then substring(series, 3)
else series END AS sorttitle
FROM Theater.Videos WHERE type='TV' and season=MIN(season) and episode=MIN(episode) ORDER BY sorttitle ASC

最佳答案

尝试这些查询(经过适当修改后)...

要获取所有系列的列表以及第一(最小)季的第一集,请使用此...

select distinct v1.*
from videos v1,
(select series, min(season) as min_season from videos group by series) as v2,
(select series, season, min(episode) as min_episode from videos group by series, season) as v3
where v1.series = v2.series
and v1.season = v2.min_season
and v2.series = v3.series
and v2.min_season = v3.season
and v1.episode = v3.min_episode

要获取所有系列的列表以及每个季节的第一集,请使用此...

select distinct v1.*
from videos v1,
(select series, season, min(episode) as min_episode from videos group by series, season) as v3
where v1.series = v3.series
and v1.season = v3.season
and v1.episode = v3.min_episode

关于WHERE 子句中的 MYSQL MIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17938384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com