Объединить несколько строк из другой таблицы в 1 столбец в MySQL

0

У меня две таблицы

table1

|---------------------|------------------|------------------|
|      student_id     |   studentname    |     parentid     |
|---------------------|------------------|------------------|
|          1          |       Kobe       |        1         |
|---------------------|------------------|------------------|
|---------------------|------------------|------------------|
|          2          |      Lebron      |        1         |
|---------------------|------------------|------------------|


table2
|---------------------|------------------|
|       parentid      |    parentname    |   
|---------------------|------------------|
|          1          |      Jordan      |
|---------------------|------------------|

Я хочу выбрать выход, подобный этому

result
|---------------------|------------------|------------------|---------------- 
--
|       parentid      |    parentname    |    childrenid    |  childrenname
|---------------------|------------------|------------------|------------------
|          1          |      Jordan      |     1,2          |  Kobe,Jordan
|---------------------|------------------|------------------|------------------

это возможно? спасибо заранее, я уже использую этот запрос, но строки дублируют

select * from table2 left join table1 ON table1.parentid = table2.parentid
Теги:

2 ответа

0
Лучший ответ

используйте GROUP_CONCAT funtion в mysql

select parentname,
GROUP_CONCAT(student_id SEPARATOR ',') AS childrenid,
GROUP_CONCAT(studentname SEPARATOR ',') childrenname  
from table2 p left join table1 s on
p.parentid=s.parentid
group by parentname

parentname  childrenid  childrenname
Jordan       1,2        Kobe,Lebron

http://www.sqlfiddle.com/#!9/4d9127/2

  • 0
    если это поможет, то, пожалуйста, примите мой ответ как ТАК благодарность
  • 0
    Кстати, сэр, как мне установить длину group_concat?
Показать ещё 3 комментария
0

Нет, это невозможно, вам нужно использовать левое соединение, которое приведет к двум рядам для Кобе и другим для Леброна.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню