如何在MySQL中的单个字段中导出值列表?

时间:2017-03-14 15:10:03

标签: mysql

我想连接表A和B,B.c是一个以列表形式返回多个字符串的列。当我使用

进行内部联接时
select A.x, B.c
from A
join B
on A.y=B.y

每次观察我得到一个带有[列表中的值数]行的输出。有没有办法将列表写入结果表中的单个字段,以便每次观察得到一行?

更新:

select profiles.name, profiles.street_no, profiles.street_name, profiles.postal_code, profiles.city, profiles.country_code, profiles.owner, profiles_emails.email, profiles_telephones.telephone, clusters.main_topic, group_concat(profiles_tags.tag)
from profiles
    join profiles_emails
        on profiles.id=profiles_emails.profiles_id 
    join profiles_telephones
        on profiles.id=profiles_telephones.profiles_id
    join profiles_tags
        on profiles.id=profiles_tags.profiles_id
    join profiles_clusters
        on profiles_clusters.profiles_id=profiles.id
            join clusters
                on profiles_clusters.clusters_id=clusters.id
group by profiles.city, profiles.name, profiles.street_no, profiles.street_name, profiles.postal_code, profiles.country_code, profiles.owner, profiles_emails.email, profiles_telephones.telephone, clusters.main_topic

该组当然占用了太多时间,所需的输出只是一个包含所有选定列和最后一列作为列表的表。

1 个答案:

答案 0 :(得分:1)

好像你需要group_concat .. 假设每个a.x值有几个b.c值,你可以使用group_concat,例如:

  select A.x, group_concat(B.c)
  from A
  join B  on A.y=B.y
  group by a.x
相关问题