我创建了一个rextester供您使用:http://rextester.com/MDHD7605
要求:
应仅返回1(单)行
group_concatenated应该是唯一/不同的组织数据,而不是相同的组织数据连接3次。
我得到的是返回3行,并且连续数据反复相同。它应该是从每3行(连接数据)到1列的数据。
GROUP_CONCAT数据应该是:
84864-双子城脊柱中心 - 1984-1985 ^,99143-特殊医院 手术 - 1986-1986 ^^ 99143-华盛顿大学 - 1986-1986 ^
我得到的是您在预览/示例链接中看到的内容。
我的查询中出错了什么?我该如何纠正呢?
答案 0 :(得分:1)
您需要使用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 强>