У меня есть таблица, которая содержит информацию о продукте с несколькими экземплярами продукта с одинаковым названием, идентифицированными разными цветами и их идентификаторами.Мне нужно вывести всю строку, где 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 рико-красный бла1, когда хочу 3 рико-желтого бла3.
Воткод, который я использую:
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