1
我是一個正在學習MySQL並正在構建電影網站的學習者。如果有人能夠幫助我,我會很感激。從group_concat結果中選擇不同的值
所以,我做一個查詢,是這樣的,
SELECT Movie.idMovie,MovieTitle,Description,
group_concat(ActorName) AS ActorName,group_concat(DirectorName)
FROM EAD_ASSIGNMENT.Movie
INNER JOIN EAD_ASSIGNMENT.Movie_Actor
ON EAD_ASSIGNMENT.Movie.idMovie = EAD_ASSIGNMENT.Movie_Actor.idMovie
INNER JOIN EAD_ASSIGNMENT.Actor
ON EAD_ASSIGNMENT.Movie_Actor.idActor = EAD_ASSIGNMENT.Actor.idActor
INNER JOIN EAD_ASSIGNMENT.Movie_Director
ON EAD_ASSIGNMENT.Movie.idMovie = EAD_ASSIGNMENT.Movie_Director.idMovie
INNER JOIN EAD_ASSIGNMENT.Director
ON EAD_ASSIGNMENT.Movie_Director.idDirector =
EAD_ASSIGNMENT.Director.idDirector
WHERE Movie.idMovie = 1;
表我得到了這個樣子
1 || Frozen || A magical movie || Idina Menzel,Kristen Bell || Jennifer Lee, Chris Buck
然後我查詢了WHERE Movie.idMovie = 2
要我的震驚,我得到的是這個(問題在最後一個單元格),
2 || Starwars || A very nice movie || Carrie Fisher,Harrison Ford || J.J. Abrams,J.J. Abrams
所以問題是group_concat不能像我想的那樣工作。在這種情況下,對於第一個查詢看起來很好,但對於第二個查詢,它將1個值視爲一個組,並將其與自身分組(猜測)?有沒有什麼辦法可以對結果進行分組,如果有超過1個,中間有一個',',並且如果只有1個結果,那麼不做任何事情?