好的,所以我正在开发家庭影院系统,为了显示电视剧列表,我一直在选择第一季的第一集并显示该剧集的相关信息,然后您可以深入了解其他内容。
这样我就可以将所有电影和所有电视节目保存在一个表格中,这使得播放功能更加容易。
问题是,有些系列我在数据库中没有第一集,我希望它们无论如何都会出现,所以我想选择最小的季节/系列而不是第一集。
我不能放入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