Ham*_*mid 5 php mysql sql join left-join
我有2张桌子:
表:电影
MovieID -- Name
1 -- Movie1
2 -- Movie2
Run Code Online (Sandbox Code Playgroud)
表:类型
MovieID -- Type
1 -- DVD
1 -- Bluray
1 -- VCD
2 -- DVD
Run Code Online (Sandbox Code Playgroud)
我需要一个查询来查找这一行:Movie1:DVD - Bluray - VCD
我用了:
SELECT Movies.Name,
IF(TYPE = 'DVD', 1, 0 ) AS DVD,
IF(TYPE = 'Bluray', 1, 0 ) AS Bluray,
IF(TYPE = 'VCD', 1, 0 ) AS VCD
FROM Movies LEFT JOIN Types ON Movies.MovieID = Types.MovieID
Run Code Online (Sandbox Code Playgroud)
但它返回多板线:
Movies.Name -- DVD -- Bluray -- VCD
Movie1 -- 1 -- 0 -- 0
Movie1 -- 0 -- 1 -- 0
Movie1 -- 0 -- 0 -- 1
Movie2 -- 1 -- 0 -- 0
Run Code Online (Sandbox Code Playgroud)
我想要:
Movie1 -- 1 -- 1 -- 1
Movie2 -- 1 -- 0 -- 0
Run Code Online (Sandbox Code Playgroud)
Pas*_*TIN 10
这个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
Run Code Online (Sandbox Code Playgroud)