2014-10-28 3 views
0

Здравствуйте,DISTINCT один столбец

У меня есть две таблицы:

эпизодов:

  • идентификаторов
  • эпизод
  • сезон
  • серии
  • название

серии:

  • идентификатор
  • имя

Я хотел бы получить последние добавленные эпизоды (без повторения серии)

Например: Я добавил два эпизода ода Walking Dead и один эпизод House MD

Таким образом, результат должен быть:

Эпизод 2 - Walking Dead

Эпизод 1 - House MD

Мой запрос на это моментом является:

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

Используйте группу по seriesId. –

+0

Если вам нравится, рассмотрите следующий простой двухэтапный курс действий: 1. Если вы еще этого не сделали, укажите надлежащие DDL (и/или sqlfiddle), чтобы мы могли легче реплицировать проблему. 2. Если вы еще этого не сделали, укажите желаемый набор результатов, соответствующий информации, представленной на шаге 1. – Strawberry

+0

Если я использую группу по номеру серии, я получаю первый эпизод, не последний ... – Kamilos

ответ

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 

Если вам нужно больше столбцов затем использовать присоединиться

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 
Смежные вопросы