Mysql Multiple Concat Inner Join,只给出一个Name

标签 mysql sql mysql-error-1242

我有三张表。

table1 = anlass 
table2 = stammdaten_beziehungen
table3 = parameter_zuweisungen_anl

It gaves me this ERROR: Subquery returns more than 1 row

But what i need, is all 'BeziehKuBez' Comma separated in one column.
eg. Beziehname1, Beziehname2, ...

If have test it with, CONCAT_WS(',', BeziehKuBez). But give me the same one. Could I do this with a while loop? But I dont know how?!

Update: Regarding Greg's answer:

GROUP_CONCAT() gives he same output as concat().

Only one name per "Anlass". But i need, Multiple names comma separated for one "Anlass".

TABLE STRUCTURE:

Table Anlass:

AnlID, anlass_name

Table Stammdaten_beziehungen

BeziehID, Beziehkubez

Table Parameter_zuweisung_anl

ZuwAnlID, ZuwAnlAnlNr,ZuwAnlBeziehID

INFO ZuwAnlAnlNr linked to Anlass.AnlID ZuwAnlBeziehID linked to Beziehung.BeziehID

This is my query:

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

最佳答案

我认为您正在寻找 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 ?

关于Mysql Multiple Concat Inner Join,只给出一个Name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1509945/

相关文章:

php - 如何根据我在 codeigniter session 中拥有的电子邮件返回数据?

mysql - 如何从两个表中进行选择?

mysql - 如何处理返回多行的子查询

MySQL 错误 : #1242 - Subquery returns more than 1 row

php - 首先显示来自查询的一部分的记录,然后是匹配第二部分的记录

mysql - Spring 应用程序启动验证具有错误数据库表的实体

Mysql 选择多个总计列

sql - 当所有连接条件与 TSQL 匹配时,如何按特定顺序将 2 个表连接在一起

sql - 去除 SELECT 中的非数字字符

mysql - 通过从另一个表 MySQL 查询中选择数据来更新表