-1

これは私のクエリです:

SELECT DISTINCT  star_user.name_user, star_group.name_group,   star_addresses.email 
FROM star_addresses

JOIN star_user_group
ON star_user_group.id_user_groupu = star_addresses.user_id

JOIN star_group
ON star_group.id_group = star_user_group.id_group_groupu

JOIN star_user
ON star_user.corespondence_user = star_addresses.id_address

JOIN star_news_group
ON star_news_group.groupid_newsg = star_user_group.id_group_groupu

WHERE newsid_newsg = 5;

上記のクエリを実行すると、次の出力が得られます。

name_user|name_group|email
Zuma     |A         |abc@zz.com
Rafe     |B         |xyz@nn.com
Adam     |D         |aaa@bb.com
Zuma     |B         |abc@zz.com
Zuma     |C         |abc@zz.com

彼女の name_user や email のような Zuma の反復的な値の代わりに私が持ちたいのはこれです:

name_user|name_group|email
Zuma     |A,B,C     |abc@zz.com

それで、それを取得する方法は?ご助力ありがとうございます!

4

1 に答える 1

0

MySQL では、次を使用します。GROUP_CONCAT

SELECT  star_user.name_user, 
        GROUP_CONCAT(DISTINCT star_group.name_group) name_group,   
        GROUP_CONCAT(DISTINCT star_addresses.email) email
FROM    star_addresses
        JOIN star_user_group
            ON star_user_group.id_user_groupu = star_addresses.user_id
        JOIN star_group
            ON star_group.id_group = star_user_group.id_group_groupu
        JOIN star_user
            ON star_user.corespondence_user = star_addresses.id_address
        JOIN star_news_group
            ON star_news_group.groupid_newsg = star_user_group.id_group_groupu
WHERE   newsid_newsg = 5;
GROUP   BY star_user.name_user
于 2013-03-06T10:51:58.823 に答える