【发布时间】:2023-03-07 07:30:01
【问题描述】:
在这个数据库中
https://www.databasestar.com/sample-database-movies/
我想进行以下查询:“列出电影《巴西》中所有演员的姓名和类型”。
我做这个查询:
USE movies;
SELECT DISTINCT p.person_name AS 'Nombre', g.gender AS 'Sexo' FROM movie m
JOIN movie_crew mc ON m.movie_id = mc.movie_id
JOIN department d ON mc.department_id = d.department_id
JOIN movie_cast mc2 ON m.movie_id = mc2.movie_id
JOIN person p ON mc2.person_id = p.person_id
JOIN gender g ON mc2.gender_id = g.gender_id
WHERE m.title = 'Brazil' AND d.department_name = 'Actors';
但是没有结果出现,我不明白我的错误在哪里。
谢谢。
【问题讨论】:
-
请use text, not images/links, for text--including tables & ERDs。仅将图像用于无法表达为文本或增强文本的内容。在图像中包含图例/键和说明。 (但如果一个表是 minimal reproducible example 基数,那么无论如何您都将在 DDL 的代码中以文本形式提供其 ERD 信息。)
-
请在代码问题中给出minimal reproducible example--cut & paste & runnable code,包括最小的代表性示例输入作为代码;期望和实际输出(包括逐字错误消息);标签和版本;明确的规范和解释。给出尽可能少的代码,即您显示的代码可以通过您显示的代码扩展为不正常的代码。 (调试基础。)对于包含 DBMS 和 DDL(包括约束和索引)和输入为格式化为表的代码的 SQL。 How to Ask 暂停总体目标的工作,将代码砍到第一个表达式,没有给出你期望的内容,说出你的期望和原因。
-
您必须深入挖掘数据。我删除了 WHERE 子句的部分:
AND d.department_name = 'Actors'... 并找到了记录。该查询组合中碰巧没有任何 department_id = 12(对于演员)。 -
在这种情况下考虑演员的“流派”是没有意义的。你是指角色的“性别”吗?
-
嗨。感谢您的回答和建议。是的,我指的是“性别”,而不是“类型”,抱歉。