我有两个表:Person、PersonType
Person PersonType PersonTypeMapping
personId name typeId typeName tId personId typeId
101 p1 1 Student 123 101 1
102 p2 2 Employee 124 102 1
103 p3 125 102 2
126 103 1
127 103 2
现在我需要获取人名及其相应的类型名称。
这是我的查询
SELECT Person.personId, Person.name,PersonType.typeName
from Person
INNER JOIN PersonTypeMapping ON PersonTypeMapping.personId = Person.personId
INNER JOIN PersonType ON PersonType.typeId = PersonTypeMapping.typeId;
我的输出:
personId name typeName
101 p1 Student
102 p2 Student
102 p2 Employee
103 p3 Student
103 p3 Employee
但我需要这样的输出:
personId name typeName
101 p1 Student
102 p2 Student, Employee
103 p3 Student, Employee
为此可以做什么?
最佳答案
SELECT Person.personId, Person.name, Group_Concat(PersonType.typeName)
from Person
INNER JOIN PersonTypeMapping ON PersonTypeMapping.personId = Person.personId
INNER JOIN PersonType ON PersonType.typeId = PersonTypeMapping.typeId
GROUP BY Person.personId, Person.name;
关于mysql - 如何在sql中的单个查询中获取具有多个值的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58589122/