I have the following table:
MovieID | movieName | parentMovieID |
---|---|---|
1 | Action | NULL |
2 | Romace | NULL |
3 | Comedy | NULL |
4 | Movies A | 1 |
5 | Movie B | 1 |
6 | Movie C | 2 |
7 | Movie D | 2 |
8 | Movie E | 2 |
9 | Movie F | 3 |
10 | Movie G | 3 |
11 | Movie H | 3 |
I've been trying to output the movie name based on the ID to match the table below but I'm having trouble with the select statement.
MovieID | movieName | parentMovieID |
---|---|---|
1 | Action | NULL |
2 | Romace | NULL |
3 | Comedy | NULL |
4 | Movies A | Action |
5 | Movie B | Action |
6 | Movie C | Romace |
7 | Movie D | Romace |
8 | Movie E | Romace |
9 | Movie F | Comedy |
10 | Movie G | Comedy |
11 | Movie H | Comedy |
CodePudding user response:
You can use a left join
:
select m.*, m1.moviename genre from movies m
left join (select m2.* from movies m2 where m2.parentmovieid is null) m1
on m.parentmovieid = m1.movieid
CodePudding user response:
A typical LEFT JOIN
will provide the info you want:
select a.movieID, a.movieName, b.movieName
from movie a
left join movie b on b.MovieID = a.parentMovieID