如何通过MySQL查询指定导演对应影片的所有演员?
解决方案
注意:你提供的示例数据字段名和表结构描述存在不一致(比如Film表结构标注为Director,但示例里是productor;Casting表结构标注为actors,示例里是Acteur),实际使用时要保证SQL中的字段名和数据表实际字段名一致。
方法一:分步查询(修正语法错误后)
- 获取指定导演对应的影片标题
SELECT title FROM Film WHERE Director = 'George Lucas'; -- 若实际字段是productor则替换为productor
- 通过影片标题查询对应演员
SELECT Acteur FROM Casting WHERE title = 'Starwars'; -- 若实际字段是actors则替换为actors
方法二:联表查询(一步到位,更高效)
通过JOIN关联两张表,直接获取指定导演的所有演员:
SELECT c.Acteur FROM Film f JOIN Casting c ON f.title = c.title WHERE f.Director = 'George Lucas';
方法三:合并结果为逗号分隔字符串(匹配你期望的输出格式)
使用MySQL的GROUP_CONCAT函数将所有演员名合并为单个字符串:
SELECT GROUP_CONCAT(c.Acteur SEPARATOR ', ') AS Acteur FROM Film f JOIN Casting c ON f.title = c.title WHERE f.Director = 'George Lucas';
执行后会返回:
Acteur Ewan McGregor, Natalie Portman
内容的提问来源于stack exchange,提问作者marlon
相关产品推荐
相关产品推荐

