php – sql – Mysql:在多行上左连接并检索1行

我有2张桌子:

表:电影

MovieID -- Name
1          -- Movie1
2          -- Movie2

表:类型

MovieID -- Type
1          -- DVD
1          -- Bluray
1          -- VCD
2          -- DVD

我需要一个查询来找到这一行:
Movie1:DVD – Bluray – VCD

我用了:

SELECT Movies.Name,IF(TYPE = 'DVD',1,0 ) AS DVD,IF(TYPE = 'Bluray',0 ) AS Bluray,IF(TYPE = 'VCD',0 ) AS VCD
FROM Movies LEFT JOIN Types ON Movies.MovieID = Types.MovieID

但它返回多板线:

Movies.Name -- DVD -- Bluray -- VCD
Movie1          -- 1     -- 0        -- 0
Movie1          -- 0     -- 1        -- 0
Movie1          -- 0     -- 0        -- 1
Movie2          -- 1     -- 0        -- 0

我想要:

Movie1          -- 1     -- 1        -- 1
Movie2          -- 1     -- 0        -- 0

最佳答案
这里可以使用group_concat()功能.

没有经过测试,但我认为这样的事情应该有效:

SELECT Movies.Name,group_concat(type separator ' - ') as type
FROM Movies 
    LEFT JOIN Types ON Movies.MovieID = Types.MovieID
group by Movies.Name

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。