Как получить данные нескольких столбцов в одной ячейке с помощью запроса SQL? - PullRequest
0 голосов
/ 21 декабря 2018

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

Предположим, у меня есть следующие 2 таблицы:

Таблица 1:

Name     spec
--------------
James    front
--------------
Henry    front
--------------
Henry    back

Таблица 2:

Name     dir
--------------
James    123
--------------
Henry    456

И я хочу получить этот результат:

Таблица результатов:

Name     spec     dir
-----------------------
James    front    123
-----------------------
Henry    front    456
         back
-----------------------

Ответы [ 3 ]

0 голосов
/ 21 декабря 2018

Решением этой проблемы является вызов объединения.Объединение объединяет несколько таблиц в одну, используя определенные идентификаторы.В вашей задаче идентификатором является имя.Пример решения будет:

select table1.name, table2.spec, table2.dir
    from table1 inner join table2 on table1.name = table2.name
0 голосов
/ 21 декабря 2018

Пример: GROUP_CONCAT правильно, но если вы хотите напечатать значение столбца спецификации в новой строке, используйте ' \ n '

SELECT a.name, GROUP_CONCAT(spec SEPARATOR '\n'),dir
FROM table1 a INNER JOIN table2 b ON (a.name=b.name)
GROUP BY a.name,dir;
0 голосов
/ 21 декабря 2018

Вы можете попробовать использовать group_concat() функцию

    select a.name, group_concat(spec SEPARATOR ' '),dir
    from table1 a inner join table2 b on a.name=b.name
    group by a.name,dir
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...