gpt4 book ai didi

mysql - 从 group_concat 结果中选择不同的值

转载 作者:行者123 更新时间:2023-11-28 23:40:15 24 4
gpt4 key购买 nike

我是一名学习者,有兴趣学习 MySQL 并正在构建一个电影网站。如果有人能在这里帮助我,我将不胜感激。

所以我做了一个这样的查询,

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 个结果则不执行任何操作,有什么方法可以对结果进行分组吗?

最佳答案

所以我意识到我可以通过包含一个 DISTINCT 函数来修复它,告诉查询仅当它们不同时才进行分组。正确的查询是这样的,

SELECT Movie.idMovie,MovieTitle,Description,
group_concat(DISTINCT ActorName) AS ActorName,group_concat(DISTINCT 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;

如果有任何方法可以改进此查询,请告诉我,目前这似乎对我有帮助。 :)

关于mysql - 从 group_concat 结果中选择不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34579103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com