繁体   English   中英

通过基于最大值的联接获取整行

[英]Get full row with a join based on max value

在mysql中,我有以下两个表:

**Seasons**
id
number
current

**Episodes**
id
number
season_id
other_info

我想从得到一个完整的排Episodes ,从加盟排Seasons都基于最大number两表的价值。

例如,如果我有第1、2、3季,我想从最近的第一个季中获取最新的剧集。

我从以下查询开始:

SELECT e.id as episode_id, s.id as season_id, MAX(s.number) AS season_number, MAX(e.number) AS episode_number, e.other_info
FROM (episodes AS e)
JOIN seasons AS s ON e.season_id=s.id
WHERE s.current =  1

可以,但是显示错误的other_info值。 我知道这是因为MAX()行进行了分组,但是其他值是随机的,因此我认为它只是从可用的第一行显示other_info

环顾四周,我发现了我认为可以解决的问题,但没有:

SELECT e.id as episode_id, s.id as season_id, MAX(s.number) AS season_number, MAX(e.number) AS episode_number, e.other_info
FROM (episodes AS e)
JOIN seasons AS s ON e.season_id=s.id
WHERE s.current =  1 AND
e.number = (select max(sube.number) from episodes sube);

在这种情况下,我只获取所有NULL值。

我认为这将帮助您:

SELECT seasons.*, episodes.* 
FROM episodes
INNER JOIN seasons ON episodes.season_id = seasons.id
ORDER BY seasons.number DESC ,episodes.number DESC 
limit 0,1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM