具有多个联接的MariaDB查询

时间:2020-07-21 20:44:50

标签: mysql join mariadb

在此数据库中

https://www.databasestar.com/sample-database-movies/

ERD

我要进行以下查询:“列出电影“巴西”中所有演员的姓名和流派”。

我进行以下查询:

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'; 

但是没有结果出现,我不知道我的错误在哪里。

谢谢。

1 个答案:

答案 0 :(得分:0)

我建议您稍微简化一下架构。

  • 只需将简单的字符串用于体裁,language_role,关键字,性别,person_name
  • 使用iso_code代替country_id
  • 部门和公司的简单缩写
  • 这些 do 需要规范化(如您所穿):人,电影,公司,但主要是因为这些实体中还有其他东西。

也就是说,摆脱最左边和最右边列中的大多数表。

做出更改后,错误可能会神秘消失。 (而且,当您获得更多数据时,查询将运行得更快。这确实假定您具有合适的索引。)