2016-02-01 3 views
0

У меня есть эти данные.добавить значения строк в один столбец MYSQL

create table student 
(
    student_id int, 
    name varchar(50) 
) 

create table student_option 
(
    student_option_id int, 
    student_id int, 
    s_option varchar(50) 
) 
insert into student 
(
student_id, 
name 
)values(1,'John'),(2,'Martin') 

insert into student_option 
(
    student_option_id, 
    student_id, 
    s_option 
)values(1,1,'A'),(2,1,'B'),(3,2,'C'),(4,2,'D') 

select * from student 
select * from student_option 

Я хочу, чтобы на выходе будет отображаться как

student_name  options 
    John    A, B 
    Martin   C, D 

что является наиболее оптимизированный способ сделать это в MYSQL5.6

Заранее спасибо

ответ

0

Это один должен работать , В основном вы используете GROUP_CONCAT function from MySQL и имя GROUP BY после.

select s.name, group_concat(o.s_option) 
    from student s 
    left join student_option o on (s.student_id = o.student_id) 
    group by s.name; 

Результат:

name s_option 

John B,A  
Martin D,C 
Смежные вопросы