首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >中具有特定类型列的Group_concat

中具有特定类型列的Group_concat
EN

Stack Overflow用户
提问于 2014-03-26 04:09:20
回答 4查看 110关注 0票数 1

我的桌子是:

代码语言:javascript
复制
Parent_Child (Parent_SSN, Child_SSN)
Person (SSN, Name, age, sex)
School (Child_SSN, School_Name)

我想选择在某所学校中至少有一个孩子的父母(女性,男性),'X'.I有一个工作查询,我的mysql查询是:

代码语言:javascript
复制
select group_concat(p.name) from person p,parentchild pc,school s 
where s.schoolname='X' and s.childssn=pc.childssn and p.ssn=pc.parentssn 
group by pc.childssn

这将结果显示为parent(male,female),但我希望在(female,male) form中显示结果,如果我按parent.sex对其进行分组,结果将显示在单个行中,而不是在单个行中。

所需样本输出:

代码语言:javascript
复制
name

Angela,Jim

上述现有查询的输出:

代码语言:javascript
复制
name

Jim,Angela
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-03-26 05:01:17

这是给你的Sql Fiddle

代码语言:javascript
复制
SELECT DISTINCT group_concat(p.name ORDER BY p.sex Asc) 
FROM Person p JOIN Parent_Child pc ON p.ssn=pc.Parent_SSN 
          JOIN School s  ON s.Child_SSN = pc.Child_SSN
WHERE s.School_Name='X' 
GROUP By pc.Child_SSN;
票数 1
EN

Stack Overflow用户

发布于 2014-03-26 04:27:59

试试这个,也许可以使用排序

代码语言:javascript
复制
 SELECT GROUP_CONCAT( p.name ORDER BY p.name DESC ) from person p,parentchild pc,school s 
where s.schoolname='X' and s.childssn=pc.childssn and p.ssn=pc.parentssn 
group by pc.childssn
票数 0
EN

Stack Overflow用户

发布于 2014-03-26 04:35:24

您可以通过以下方式在GROUP_CONCAT函数中使用ORDER:

尝尝这个

代码语言:javascript
复制
SELECT group_concat(DISTINCT p.name ORDER BY p.name Asc) 
FROM person p JOIN parentchild pc ON p.ssn=pc.parentssn 
              JOIN school s  ON s.childssn = pc.childssn
WHERE s.schoolname='X' 
GROUP By pc.childssn

请参阅http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function%5Fgroup-concat

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22651296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档