多TableGROUP_CONTACT澄清

Multi-Table GROUP_CONTACT clarification

我创建了一个 rextester 供您使用:http://rextester.com/MDHD7605

要求:

我得到的是 3 行 returned,并且串联的数据一遍又一遍地相同。它应该是从每 3 行(串联数据)到 1 列的数据。

GROUP_CONCAT 数据应该是这样的:

84864-Twin Cities Spine Center-1984-1985^,99143-Hospital for Special Surgery-1986-1986^^99143-Washington University-1986-1986^

我得到的是您在 preview/example link.

中看到的内容

我在查询中做错了什么?我该如何更正它?

您需要使用 GROUP BY 而不是相关子查询:

SELECT genealogy_users.imis_id, genealogy_relations.user_id
       ,genealogy_relations.relation_type
       ,genealogy_users.home_page
       ,GROUP_CONCAT(genealogy_orgs.org_id,'-',genealogy_orgs.org_name,'-',genealogy_relations.start_year,'-',genealogy_relations.end_year,'^') 
          AS org_list
FROM genealogy_users 
JOIN genealogy_relations ON genealogy_users.imis_id = genealogy_relations.user_id 
JOIN genealogy_orgs ON genealogy_relations.org_id = genealogy_orgs.org_id 
WHERE genealogy_users.imis_id = '00003'
GROUP BY genealogy_users.imis_id
        ,genealogy_relations.user_id, genealogy_relations.relation_type
       ,genealogy_users.home_page

Rextester Demo