2017-01-21 4 views
-2

以下の質問をSQLで返したいと思います。SQLはマルチテーブルテーブルからデータを取得します

どのアクション映画では、女性と男性のどちらを再生するのですか?

私は、movie_id/title/genreというテーブル、cast_id/genderを持つテーブルを得ました。 このテーブルの間に、movie_idとcast_idのリンクテーブルがあります。

誰かがこのような構成からデータを抽出する方法を説明できますか?

私はあなたが条件をチェックするために関係する3つのテーブルとgroup byタイトルに参加することができ、この今のところ

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

このような質問をする場合は、サンプルデータと希望の結果を提供することから始めます。これは、あなたが質問、答え、そしておそらくそれを達成する方法について考えるのに役立ちます。 –

+0

いいえ、私は次回そのことをやろうとします。アドバイスをいただきありがとうございます。しかし、それは私の票を落とすために必要ですか? @marc_s –

+1

@ P.B:私は**あなたの質問をd​​ownvoteしませんでした.... –

答えて

0

を思い付きました。

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を実際のテーブル名に置き換えます。

+0

素敵な答えをありがとう。 'INNER JOIN imdb.cast c ON c.cast_id = f.film_id'これはムービーのすべてのキャストメンバーをテーブルに入れますか? このように実行すると「SUMがある」と言うと、 'function sum(boolean)does not exist' @vkp –

関連する問題