组SQL 2表

时间:2013-09-03 15:06:51

标签: mysql sql

我不知道这是否是我问题的正确标题,但我不是高级SQL用户,我只知道基础:)

create table movie (id int(4), title varchar(255));

create table genre (id int(4), mid int(4), genre varchar(200));

insert into movie values
(1, 'Iron man'),
(2, 'Titanic');

insert into genre values
(1,1,'Sci-Fi'),
(2,1,'Action'),
(3,2,'Drama');

这里有2张桌子,一张用于电影,一张用于流派。

我想创建一个看起来像这样的SQL。

ID   |   Title   |  Genre

1    |  Iron Man |  Action, Sci-Fi

在表格中mid是来自movie table的电影的ID ..

2 个答案:

答案 0 :(得分:0)

select movie.id, title, group_concat(genre) from movie 
left join genre on mid=movie.id
where movie.id=1
group by movie.id

答案 1 :(得分:0)

对于所有包含Genre详细信息的电影:

SELECT 
    m.id AS ID,
    m.title AS Title,
    group_concat(g.genre) AS Genre
FROM 
    movie m
LEFT OUTER JOIN genre g ON (g.mid = m.id)
GROUP BY m.id 

See on sqlfiddle