2016-07-25 18 views
0

我有一个在xampp中使用mysql的电影数据库。 它有3个表我如何使用具有特定名称的MySQL在数据库中连接两个表格

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

我必须要显示的电影,其中迈克尔·J·福克斯是演员的所有领域。我如何加入两张表格,这些表格只能让我看到迈克尔·福克斯在电影中的电影?演员电影对此有限制。

例如:香港专业教育学院尝试过百万的组合,但是这是一个例子

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

不要试图让语法变得可爱。 'where firstname ='michael'and lastname ='fox'' –

+0

从演员中选择名字,姓氏,标题在actors.actorid = actorsmovies.actorid上加入actorsmovies在actorsmovies.movi​​eid = movies.movi​​eid上加入电影;这是我键入显示所有演员和电影,但我不知道如何显示电影迈克尔j狐狸是在 – Mitchel

+0

语法的顺序很重要......只需添加/移动where子句到最后订单是( SELECT,FROM,JOIN,WHERE,GROUP BY,HAVING,ORDER BY)注意到WHERE是所有来自你的声明之间的一个连接,我相信。 – xQbert

回答

0

你有

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子句必须在连接之后,并且在由hav和group组成的命令之前ING。我还建议您更清楚地说明您的where子句和拼写,并仅为了便于阅读。

现在,如果你在那里加入外连接,您可能需要mvoe极限的条件而定

你想要的所有电影这个例子来说,你想“高亮”的与迈克尔·J·福克斯的...的正确加入这里返回所有电影片名和名字,当迈克尔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; 
相关问题