2016-12-12 25 views
0

私はテーブル(シリーズ)を持っています。私はシリーズの最初のエピソード情報だけでなく、最後の利用可能なシーズンとエピソードを取得したい。 は、私は次のクエリを使用してこれを実現することができました: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 

私は最初のエピソード情報の結果への最後のシーズンとエピソードを追加する自己参加し、最高の機能を使用していました。数字はかなり正確ですが、私は 'published'という列があり、返された最大値はそれによってフィルタリングされないことがわかります。

これを行う方法に関するご提案はありますか?

答えて

0

私は自己結合を使用して、それを解決し、サブクエリ:

SELECT 
    `video`.*, 
    `cat`.`en_title` categoryName, 
    `cat`.`nb` categoryNb, 
    `cat`.`ar_title` category_ar_title, 
    `cat`.`en_title` category_en_title, 
    `video2`.`LatestSeason` , 
    `video2`.`LatestEpisode` 
FROM 
    (`video_item` video, 
    `category` cat, 
    `video_item_category` video_cat) 
join (select 
     rootSeries, 
     MAX(season) LatestSeason, 
     MAX(episodeNummer)LatestEpisode 
    from 
     video_item 
    where 
     published = 1 
    GROUP BY 
     id 
    ) video2 on `video2`.`rootSeries` = `video`.`id` 
WHERE 
    `video_cat`.`video_itemId` = video.id 
    AND `video_cat`.`category_Id` = 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`.`episodeNummer` asc,  `video`.`updateDateTime` desc 
LIMIT 
    15 
関連する問題