0

我有三张桌子。

表 1 = anlas
表 2 = stammdaten_beziehungen
table3 = 参数_zuweisungen_anl

它给了我这个错误:子查询返回超过 1 行

但我需要的是所有 'BeziehKuBez' 逗号分隔在一列中。
例如。Beziehname1, Beziehname2, ...

如果有测试它,CONCAT_WS(',', BeziehKuBez)。但是给我同样的一个。我可以用一个while循环来做到这一点吗?但我不知道怎么做?!

更新: 关于格雷格的回答

GROUP_CONCAT()给他与 相同的输出concat()

每个“Anlass”只有一个名字。但我需要,多个名称用逗号分隔一个“Anlass”。

表结构:

表分析:

AnlID, anlass_name

表 Stammdaten_beziehungen

BeziehID, Beziehkubez

表参数_zuweisung_anl

ZuwAnlID, ZuwAnlAnlNr, ZuwAnlBeziehID

INFO ZuwAnlAnlNr 链接到 Anlass.AnlID ZuwAnlBeziehID 链接到 Beziehung.BeziehID

这是我的查询:

SELECT CONCAT(`BeziehKuBez`) AS Bezname
FROM `stammdaten_beziehungen` AS Beziehung, `anlass` AS anlass
    INNER JOIN `parameter_zuweisungen_anl` 
        ON  Beziehung.BeziehID = parameter_zuweisungen_anl.ZuwAnlBeziehID
WHERE ZuwAnlAnlNr = Anlass.AnlID
4

1 回答 1

1

我认为您正在寻找GROUP_CONCAT。您还应该按以下内容分组:

SELECT GROUP_CONCAT(BeziehKuBez) AS Bezname
FROM stammdaten_beziehungen AS Beziehung,
anlass AS anlass
INNER JOIN parameter_zuweisungen_anl ON Beziehung.BeziehID = parameter_zuweisungen_anl.ZuwAnlBeziehID
WHERE ZuwAnlID = Anlass.AnlID
GROUP BY ?
于 2009-10-02T14:46:58.150 回答