使用另一列

时间:2015-06-27 23:47:07

标签: mysql sql

我正在用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)) 

1 个答案:

答案 0 :(得分:1)

这是一种将所有信息放在一行中的方法。但是,它有点简单:

var returnedValues = myFunc(arg1,arg2, function mycallback(values)
{
return values;
});

// Now I would to use the returnedValues here...