Таблица публикаций выглядит так:
publications
============
id title etc ...
Таблица ключевых слов выглядит следующим образом:
keywords
========
id name etc ...
Таблица Keywords_relations создает отношения между публикациями и ключевыми словами в виде внешних ключей, где pid указывает на публикации публикации.ид, а ребенок указывает на ключевые слова.ид.
keyword_relations
=================
pid kid
В MySQL я построил следующий запрос:
SELECT publications.*,
GROUP_CONCAT(keywords.name SEPARATOR ', ') AS keywords
FROM publications
LEFT JOIN keyword_relations
INNER JOIN keywords
ON keyword_relations.kid = keywords.id
ON keyword_relations.pid = publications.id
WHERE keywords.id = 1
GROUP BY publications.id
ORDER BY publications.date DESC;
Я выбираю публикации на keyword.id. Однако в списке результатов столбец «ключевые слова» возвращает только выбранное ключевое слово. Я хотел бы, чтобы столбец "ключевые слова" включал все доступные ключевые слова, которые в результате.
Если я удаляю строку WHERE, я получаю список, в котором столбец «ключевые слова» включает все доступные ключевые слова для этого результата.
Как можно выбрать ключевое слово и включить в результаты все ключевые слова?