Получение данных из нескольких таблиц в одну строку при объединении некоторых значений

Я пытаюсь извлечь данные из таблиц и объединить несколько строк в один столбец, не повторяя никакой информации.

У меня есть следующие таблицы: профиль, квалификация, проекты.

Profile

pro_id  surname       firstname   
------  -------       ----------
   1    John          James           
   2    King          Fred        
   3    Luxury-Yachts Raymond

Qualification

pro_id  Degree   School               Year
------  ------   ------               -----
   1    MBA      Wharton university   2002        
   1    LLB      Yale University      2001    
   2    BSc      Covington University 1998
   2    BEd      Kellog University    1995

Projects

pro_id  Title                         Year
------  ------                        ------   
   1    Social Networking             2003        
   1    Excavation of aquatic debris  2007    
   2    Design of solar radios        1992
   2    Development of expert systems 2011

Я хочу получить всю информацию для каждого человека, причем каждый человек появляется только один раз в результате. Информация о квалификациях и проектах должна быть в отдельной колонке (одна колонка для квалификаций, другая для проектов), разделенных запятыми. Например, результаты для приведенных выше образцов данных должны быть:

1  John James             MBA Wharton university 2002, LLB Yale University 2001                     Social Networking 2003, Excavation of aquatic debris 2007, Design of Solar panels 2008
2  King Fred              BSc Covington University 1998, BEd Kellog University 1995, Msc MIT 2011   Design of solar radios 1992, Development of expert systems 2011
3  Raymond Luxury-Yachts

В настоящее время у меня есть запрос:

SELECT pro_id,
       surname,
       firstname,
       group_concat(degree,school,year) AS qual,
       concat(Title,year) AS work
FROM profile,
       LEFT JOIN qualification
           ON qualification.pro_id = profile.pro_id 
       JOIN projects
           ON projects.pro_id = profile.pro_id 
GROUP BY pro_id

Для примера данных этот запрос приводит к:

1  John James MBA  Wharton university 2002,  Social Networking 2003 
1  John James LLB  Yale University 2001, Excavation of aquatic debris 2007
1  John James MBA  Wharton university 2002,  Social Networking 2003, Excavation of aquatic debris 2007
etc

Примечание: Raymond Luxury-Yachts отсутствует в текущем результате.

Я не хочу дублировать записи результатов. Также, если у фамилии нет записи в таблице квалификаций и проектов, я хочу, чтобы запрос возвращал имя и отображал пустое поле в таблице квалификаций и проектов, а не пропускал их полностью.

Ответы на вопрос(3)

Ваш ответ на вопрос