2014-12-08 23 views
-1

我想写一个查询将检索2列。一列是项目名称,第二列是该项目成员的名称。我所得到的是一个包含每个成员信息的列表,而不是每个项目。这意味着如果项目中有多个成员,我有时会重复项目名称。我如何才能在第二栏显示项目名称,队员呢?谢谢。MySQL查询检索具有相同的值的用户的具体数据

SELECT DISTINCT p.project_name 
        , s.student_name 
       FROM Projects p 
       LEFT 
       JOIN Students s 
       ON p.project_id = s.student_id 

    project_name  student_name 
    space exploration Brian 
    space exploration Steve 
    space exploration Finn 
    Advanced Java  Kay 
    Advanced Java  John 
    Cryptography  Jake 
    Cryptography  Andy 
    ABC    NULL 
+1

至少编辑您的问题并以文本形式输入查询。图像几乎不可读。样例数据,所需结果和SQL小提琴也总是受欢迎的。 – 2014-12-08 00:43:50

+0

p.project_id = s.student_id?这是不太可能的,至少可以这样说。 – Strawberry 2014-12-08 00:43:51

回答

1

我想你想要group_concat()

SELECT p.project_name, GROUP_CONCAT(s.student_name) 
FROM Projects p LEFT JOIN 
    Students s 
    ON p.project_id = s.student_id 
GROUP BY p.project_name; 

这将使学生进入一个逗号分隔的列表。

相关问题