2016-07-25 8 views
0

xamppにmysqlを使用する映画データベースがあります。 それは3つのテーブル特定の名前のMySQLを使用してデータベース内の2つのテーブルを結合するには

movies(movieid(PK), title, rating, genre, release_date), actors(actorid(PK), firstname,lastname,gender, date_of_birth), and actorsmovies(actorid(PK),movieid(pk).

私はマイケル・J・フォックスは俳優で映画からすべてのフィールドを表示する必要があります。マイケル・J・キツネの映画しか見ることができない2つのテーブルにどうやって参加するのですか? actorsmoviesには制約があります。

例:アイブ氏は、万人の組み合わせを試してみましたが、これはあなたが

select firstname,lastname,title 
from actors 
    where firstname,lastname = 'Michael J','Fox' 
join actorsmovies 
    on actors.actorid = actorsmovies.actorid 
join movies on actorsmovies.movieid = movies.movieid; 

を持っていて、簡単に言えば

select firstname,lastname,title 
from actors 
join actorsmovies 
    on actors.actorid = actorsmovies.actorid 
join movies on actorsmovies.movieid = movies.movieid 
where firstname = 'Michael J' and lastname 'Fox'; 

、WHERE句を必要とする例

select firstname,lastname,title from actors where firstname,lastname = 'Michael J','Fox' join actorsmovies on actors.actorid = actorsmovies.actorid join movies on actorsmovies.movieid = movies.movieid;

+0

構文でかわいそうにしないでください。 'firstname = 'michael'とlastname = 'fox''のようになります。 –

+0

俳優からの姓、名字の選択actors.actorid = actorsmovies.actoridのactorsmoviesへの参加actorsmovies.movi​​eid = movies.movi​​eidの映画への参加。これは私がすべての俳優と映画を表示するために入力したものですが、映画だけを表示する方法はわかりません。 – Mitchel

+0

文法の順序は... where句を最後に追加/移動します。 GROUP BY、HAVING、ORDER BY)は、あなたがあなたが持っているすべてのfromステートメントの後に私が信じるジョイントに気づいたことに気づくでしょう。 – xQbert

答えて

0

ですジョイントの後で、グループごとに注文する前にしなければならない。そして、hav ing。私はまたあなたのwhere句とスペルをより明示的にすることをお勧めします。あなたが参加する場合は外部結合どこ

今、あなたは

は、この例では、すべてのムービーをしたいとあなたは「HILIGHT」マイケルJフォックスを持つものにしたいと言う... critieraに制限をmvoeする必要があるかもしれませんここに参加すると映画のタイトルとファーストネームがすべて返され、マイケル・J・フォックスのときはファストネームは空白になりません。それ以外の場合は空白になります。

select firstname,lastname,title 
from actors 
join actorsmovies 
    on actors.actorid = actorsmovies.actorid 
and actors.firstname = 'Michael J' and actors.lastname 'Fox'; 
right join movies on actorsmovies.movieid = movies.movieid; 
関連する問題