2014-10-28 58 views
0

你好,DISTINCT一列

我有两个表:

情节:

  • ID
  • 插曲
  • 赛季
  • 系列
  • 标题

系列:

  • ID

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

例如: 我添加了两个情节颂歌行尸走肉,一个插曲豪斯医生

所以,结果应该是:

第2集 - 行尸走肉

第1集 - 豪斯医生

我在此查询时刻是:

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 
+0

使用组。 – 2014-10-28 14:36:03

+0

如果您喜欢,请考虑遵循以下简单的两步操作步骤:1.如果您尚未这样做,请提供适当的DDL(和/或sqlfiddle),以便我们可以更轻松地复制问题。 2.如果您尚未这样做,请提供与步骤1中提供的信息相对应的所需结果集。 – Strawberry 2014-10-28 14:36:11

+0

如果我按系列编号使用组,我会得到第一集,没有最后一集... – Kamilos 2014-10-28 14:38:30

回答

1

尝试使用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 

如果你需要更多的列,然后使用由seriesId加入

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