Строка выбора SQL, где id = max (id)

У меня есть таблица, в которой содержится информация о продукте с несколькими экземплярами продукта с одинаковым названием, идентифицированными разными цветами и их идентификаторами. Мне нужно вывести всю строку, где id = максимальный идентификатор, сгруппированный по заголовку, но я не могу заставить его сделать это. Вот очень упрощенная таблица и несколько примеров данных:

id   title   colour   description

1    rico    red      blah1
2    rico    blue     blah2
3    rico    yellow   blah3
4    katia   black    blah4
5    katia   white    blah5

В этом примере с моим кодом я получаю 1 rico red blah1, когда мне нужно 3 rico yellow blah3.

Вот код, который я использую:

SELECT pd_id, pd_title, pd_description, pd_colour,
       pd_price,pd_large_image,pd_date,cat_sub_id_3,pd_new
FROM product 
WHERE 
  cat_sub_id_1 = '".$cat_sub_id."' 
  AND cat_parent_id='".$cat_parent_id."' 
GROUP BY pd_title 
HAVING MAX(pd_id) 
ORDER BY pd_id DESC

ОБНОВЛЕНИЕ: Спасибо, ребята,

Я использовал ответ Алиноза, чтобы придумать следующий код, который работает :)

SELECT
    pd_id,pd_title,pd_description,pd_colour,pd_price,pd_large_image,pd_date,cat_sub_id_3,pd_new
FROM product 
HERE cat_sub_id_1 = '".$cat_sub_id."' AND cat_parent_id='".$cat_parent_id."'
AND pd_id IN (
    SELECT max(pd_id)
    FROM product
    WHERE cat_sub_id_1 = '".$cat_sub_id."' AND cat_parent_id='".$cat_parent_id."'
    GROUP BY pd_title
    )
GROUP BY pd_title
ORDER BY pd_id DESC
8
задан bizzehdee 30 April 2013 в 19:29
поделиться