出版物表如下所示:
publications
============
id title etc ...
关键字表如下所示:
keywords
========
id name etc ...
keywords_relations 表创建出版物和关键字之间的关系,作为外键,其中 pid 指向publications.id,kid 指向keywords.id。
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;
我正在选择关于keywords.id 的出版物。但是,在结果列表中的“关键字”列只返回选定的关键字。我希望“关键字”列包含所有可用的关键字。
如果我删除 WHERE 行,我会得到一个列表,其中“关键字”列包含该结果的所有可用关键字。
我如何既可以选择关键字,又可以在结果中包含所有关键字?