Mysql查询第一个元素信息以及最后一个元素计数

时间:2016-12-12 08:46:01

标签: mysql

我有一张桌子(系列),我希望得到一系列的第一集剧集信息以及最后一个可用的季节和剧集。 我能够使用以下查询来完成此任务:

SELECT 
    `video`.*, 
    `cat`.`en_title` categoryName, 
    `cat`.`id` categoryNb, 
    `cat`.`ar_title` category_ar_title, 
    `cat`.`en_title` category_en_title,
    MAX(`video2`.`season`) LatestSeason,
    MAX(`video2`.`episodeNumber`) LatestEpisode
FROM 
    (`video_item` video, 
     `category` cat, 
     `video_item_category` video_cat,
     `video_item` video2)
WHERE 
    `video2`.`rootSeries` = `video`.`id`
    AND `video_cat`.`video_itemId` = video.id
    AND `video_cat`.`categoryId` = cat.id
    AND (`video`.published = 1)
    AND `video`.`rootSeries` = 0
    AND (video.kind =2)
    AND (video.seriesRating not in (-1))
GROUP BY 
    `video`.`id`
ORDER BY 
    `video`.`season` asc, `video`.`episodeNumber` asc, `video`.`updateDateTime` desc
LIMIT 
    15 

我使用自我加入和最大功能将上一季和剧集附加到第一集信息结果中。但数字是非常正确的,你看我有一个专栏发表了#39;并且不会过滤返回的最大值。

有关如何执行此操作的任何建议吗?

1 个答案:

答案 0 :(得分:0)

我使用自联接和子查询解决了它:

[[ 0.12873309  0.92079275]
 [ 0.90018866  0.73197021]]
[[ 0.29757185 -0.0728341 ]
 [-0.0728341   0.01782698]]
[  3.15398823e-01  -3.46944695e-18]