2017-01-30 2 views
3

Можно ли отображать по горизонтали атрибут.MySQL. Горизонтальное отображение атрибута

К примеру, у меня есть такие таблицы:

enter image description here

И просто

SELECT user.name, project.name 
FROM user 
    LEFT JOIN project ON user.project_id = project.id; 

дает мне

User #1,Project #1 
User #2,Project #1 
User #3,Project #2 

Можно ли получить такой результат? В имени одного столбца и всех связанных с ним пользователей.

Project #1 
User #1 
User #2 
Project #2 
User #3 
+0

Закрепите его в слое презентации. – jarlh

+0

@jarlh Я понимаю, но это почти невозможно. Я работаю с устаревшим кодом. Возможно ли такое обходное решение? –

ответ

1

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

SELECT t.name 
FROM 
(
    SELECT DISTINCT project.name AS name, 
        project.id AS id, 
        0 AS idx 
    FROM user 
    LEFT JOIN project 
     ON user.project_id = project.id 
    UNION ALL 
    SELECT user.name, 
      project.id, 
      1 
    FROM user 
    LEFT JOIN project 
     ON user.project_id = project.id 
) t 
ORDER BY t.id, 
     t.idx, 
     t.name 
+0

Это дает мне 2 раза «Проект № 1». –

+1

@ D.R. Я использовал SELECT DISTINCT для первой половины подзапроса 'UNION' и, похоже, сейчас работает. –

Смежные вопросы