Вы можете использовать DISTINCT
, но если любой столбец в вашем наборе результатов имеет различное значение, это приводит к дублированию строки. Если вы хотите сократить список до одной строки на name
, то вам нужно использовать DISTINCT
, а столбец catname
опустить:
SELECT DISTINCT
grdirect_publisher.name,
grdirect_publisher.short_description,
grdirect_publisher.thumb_image,
grdirect_publisher.url
FROM
. . .
Другим решением вместо использования DISTINCT
является агрегатная функция MySQL GROUP_CONCAT()
, которая позволяет принимать несколько значений в группе и создавать список через запятую:
SELECT
grdirect_publisher.name,
grdirect_publisher.short_description,
grdirect_publisher.thumb_image,
grdirect_publisher.url,
GROUP_CONCAT(grdirect_category.name) AS catname
. . .
GROUP BY grdirect_publisher.id;
Таким образом, вы должны решить, как вы хотите, чтобы набор результатов выглядел, чтобы получить правильное решение.