如何在一行中列出join表中的数据?

mccptt67  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(164)

有3个实体:1)问题,2)标签和他们之间的联接表-问题有标签。
当我进行如下选择查询时:

select * from question_has_tag as qht where qht.question_id = 6;

我得到以下结果:

question_id| tag_id
6          | 1
6          | 2
6          | 3

我需要得到:

question_id| tag_id
6          | 1, 2, 3

如何得到它?

rm5edbpk

rm5edbpk1#

你需要将它们分组,并使用组\u concat
喜欢

SELECT question_id,GROUP_CONCAT(tag_id ORDER BY tag_id )
FROM question_has_tag as qht 
WHERE qht.question_id = 6
GROUP BY question_id;
9udxz4iz

9udxz4iz2#

你在找 group_concat() 功能。此函数聚合一个特定字段,用任意字符分隔这些字段。

select
  question_id
  , group_concat(
    distinct tag_id
    order by tag_id
    separator ','
  ) as tag_id
from
  question_has_tags
where
  question_id = 6;

相关问题