Не используйте GROUP_CONCAT / GROUP BY, это приводит к накладным расходам.
Сначала выберите 8 случайных заголовков (только из таблицы titles
) в ассоциативный массив, проиндексированный по идентификатору заголовка.Давайте назовем его $ idx.
Далее подготовим список идентификаторов, скажем, как переменную $ ids.
Затем запустите запрос
SELECT
title_genere.id_title
, genre.genre
FROM
title_genre
INNER JOIN genre ON title_genere.id_genere = genere.id
WHERE
title_genere.id_title IN ($ids)
ORDER BY
genre
и соберите genre
значения в списках в $idx
:
$idx[$row['id_title']]['genres'][] = $row['genre']
Наконец, сгенерируйте HTML из $ idx.