SQL从多表表中获取数据

时间:2017-01-21 13:29:46

标签: sql postgresql

我想在SQL中返回以下问题。

在哪部动作电影中扮演更多女性,然后是男性?

我有一个表movie_id / title / genre,一个包含cast_id / gender的表。 在这个表之间有一个带有movie_id和cast_id的链接表。

有人可以解释如何从这样的结构中提取数据吗?

到目前为止我想出了这个

SELECT titel, geslacht, genre
FROM imdb.film
INNER JOIN imdb.cast ON cast.cast_id = film.film_id

1 个答案:

答案 0 :(得分:0)

您可以加入所涉及的三个表和group by标题来检查条件。

SELECT f.title
FROM imdb.film f
INNER JOIN imdb.cast c ON c.cast_id=f.film_id
INNER JOIN link_table l ON l.movie_id=f.movie_id and l.cast_id=c.cast_id
WHERE f.genre = 'ACTION'
GROUP BY f.title
HAVING SUM(c.gender = 'F') > SUM(c.gender = 'M')

将查询中的link_table替换为实际的表名。