mysql - 独特的一栏

标签 mysql sql greatest-n-per-group

你好,

我有两个表:

episodes:

  • id
  • episode
  • season
  • series
  • title

series:

  • id
  • name

我想收到最后添加的剧集(不重复系列)

例如: 我在《行尸走肉》中添加了两集,在《House M.D》中添加了一集。

所以,结果应该是:

Episode 2 - Walking Dead

Episode 1 - House M.D.

此时我的查询是:

SELECT *, e.id AS episodeId, s.id AS seriesId 
FROM episodes AS e 
LEFT JOIN series AS s ON e.series = s.id 
ORDER BY e.id DESC LIMIT 25

最佳答案

尝试使用 MAX(e.id)

SELECT MAX(e.id) AS episodeId, s.id AS seriesId 
FROM episodes AS e 
LEFT JOIN series AS s ON e.series = s.id 
GROUP BY s.id

如果您需要更多列,请使用联接

SELECT * 
FROM episodes AS ep
JOIN
(SELECT MAX(e.id) AS episodeId, s.id AS seriesId 
FROM episodes AS e 
LEFT JOIN series AS s ON e.series = s.id 
GROUP BY s.id) temp
ON temp.episodeId =ep.id

关于mysql - 独特的一栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26611007/

相关文章:

sql - 每年返回前 10 名

mysql - 如何通过组合电子邮件和日期来获取 "unique"用户

mysql - 具有多个表连接的每个组的前 N ​​个

java - 将字符串插入PreparedStatement

php - 收集所有MySQL ID

mysql存储过程登录

php - MySQL + PHP : Select all results from one table for each result of another

mysql - 如何将多个表(具有相同的列名)复制到一个新表<SQL>。?

php - 在发送到 MySQL 数据库之前清理外部 XML 数据

sql - ORA-00979不是一个group by表达式