0
我正在MySQL中编写查询,它已向我提出质疑。这是情况;使用另一列的最大值选择列的最大值
我们假设我有一张名为'status
'的表格,它保存了类似电视节目的数据;
+---------+---------+---------+---------+
| id | season | episode | channel |
+---------+---------+---------+---------+
| 1 | 2 | 10 | a |
| 1 | 3 | 2 | b |
| 1 | 2 | 9 | c |
| 1 | 3 | 1 | d |
| 1 | 3 | 2 | e |
+---------+---------+---------+---------+
我想检索包含上个赛季最后发行的剧集的行。根据上面的表格,我希望这样的
+---------+---------+---------+
| season | episode | channel |
+---------+---------+---------+
| 3 | 2 | b |
| 3 | 2 | e |
+---------+---------+---------+
赛季列的最大值为3。在这种情况下的结果,我已经检索到有情节列的最大值的行,其中季等于3.我写了一个查询,它给出了预期的结果,但我不认为这是一个合适的查询。我如何改进下面的查询?如果需要,我可以添加额外信息或提供更多示例。
SELECT `season`,
`episode`,
`channel`
FROM `status`
WHERE `tvseriesid` = 1
AND `season` = (SELECT Max(season)
FROM `status`
WHERE `tvseriesid` = 1)
AND `episode` = (SELECT Max(episode)
FROM `status`
WHERE `tvseriesid` = 1
AND `season` = (SELECT Max(season)
FROM `status`
WHERE `tvseriesid` = 1))
关键是获取包含正确信息的通道列表。这很简单,并给出了我的意图。 –