簡體   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