我有三张桌子。
table1 = anlass table2 = stammdaten_beziehungen table3 = parameter_zuweisungen_anl
它给了我这个错误:子查询返回超过1行
但我需要的是,所有'BeziehKuBez'逗号分隔在一栏中 例如。 Beziehname1,Beziehname2,......
如果使用CONCAT_WS(',', BeziehKuBez)
进行测试。但是给我一个同样的。我可以用while循环吗?但我不知道怎么样?!
更新 关于Greg's answer:
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
答案 0 :(得分: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 ?
答案 1 :(得分:0)
在Greg's answer的帮助下,我找到了这个解决方案:
SELECT GROUP_CONCAT(BeziehKuBez) AS Ausgabe
FROM `stammdaten_beziehungen` AS Beziehung
INNER JOIN `parameter_zuweisungen_anl` ON Beziehung.BeziehID = parameter_zuweisungen_anl.ZuwAnlBeziehID
WHERE ZuwAnlAnlNr = Anlass.AnlID
GROUP BY ZuwAnlAnlNr