簡體   English   中英

MySQL分組依據,按兩列排序

[英]MySQL Group by, Order by Two Columns

我想獲得每部電影的最后一集的名字

表結構:

+---------+------------+---------------+
|     id  |  movie_id  |  episode_name |
+---------+------------+---------------+
|      1  |         1  |             1 |
|      2  |         1  |             2 |
|      3  |         1  |             3 |
|      4  |         2  |             1 |
|      5  |         3  |             1 |
|      6  |         2  |             2 |
|      7  |         1  |             4 |
|      8  |         2  |             3 |
|      9  |         4  |             1 |
+---------+------------+---------------+

查詢1:

SELECT * FROM episode
group by movie_id
order by id desc, episode_name desc LIMIT 10

查詢2:

SELECT * FROM episode
WHERE movie_id IN (select movie_id from episode group by movie_id)
group by movie_id
order by episode_name desc

但是輸出不是我想要的,也許我做錯了

+--------+------------+---------------+
|  id    |  movie_id  |  episode_name |
+--------+------------+---------------+
|     9  |         4  |             1 |
|     5  |         3  |             1 |
|     4  |         2  |             1 |
|     1  |         1  |             1 |
+--------+------------+---------------+

我想要的結果是:

+---------+------------+---------------+
|     id  |  movie_id  |  episode_name |
+---------+------------+---------------+
|      9  |         4  |             1 |
|      8  |         2  |             3 |
|      7  |         1  |             4 |
|      5  |         3  |             1 |
+---------+------------+---------------+

這是一個非常普遍的問題,我們可以在MySQL中處理此問題,方法是將episode表連接到一個子查詢,該子查詢查找每部電影的最新情節。 這種方法為我們提供了完全匹配的最新記錄,包括id列,然后可以用來對結果集進行排序。

SELECT e1.*
FROM episode e1
INNER JOIN
(
    SELECT movie_id, MAX(episode_name) AS max_episode_name
    FROM episode
    GROUP BY movie_id
) e2
    ON e1.movie_id = e2.movie_id AND
       e1.episode_name = e2.max_episode_name
ORDER BY
    e1.id DESC;

演示

如果只需要最后一個Episode_name,並且我遵循表的邏輯,則可以嘗試在SELECT查詢中使用MAX(),因此您將只獲得列“ episode_name”的MAX結果( 此處的模式信息)

SELECT id, movie_id, MAX(episode_name) 
FROM table GROUP BY movie_id 
ORDER BY id DESC

這是您要找的東西嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM