2015-04-06 44 views
0

我正在爲學校的數據庫項目工作,而我在類中的SQL查詢方面比較新,所以我一直在尋找特定查詢的幫助。使用外鍵的多個表之間的特定查詢

這裏是我的架構:

movies 
---------------------------- 
id:integer (primary key) 
title: varchar(100) 
-------------------------- 

stars 
-------------------------- 
id:integer (primary key) 
-------------------------- 

stars_in_movies 
--------------------------------------- 
star_id:integer, referencing stars.id 
movie_id:integer, referencing movies.id 
----------------------------------------- 

所以,提供了一個明星的ID,這將是查詢來獲取所有電影的明星是標題?

我知道這是一個針對查詢的非常具體的問題,但我想知道是否有人可以提供特定的查詢和解釋爲什麼查詢執行它的功能,因爲我更感興趣的是「爲什麼查詢有效「的答案。

再次感謝您的幫助。

+1

嗨解決這個問題,你應該開始理解JOIN語法你可以做[這裏](http://dev.mysql.com/doc/refman/5.0/en/join.html)也你可以看看我的答案[這裏](http://stackoverflow.com/questions/29153032/how-to-test-in-and-between-each-of-several-tables/29157204#29157204)其中我試圖一塊一塊地解釋JOIN語法...也應該閱讀mySql中的多對多關係... – 2015-04-06 09:49:32

+0

@AleksandarMiladinovic哦完美!對其他帖子的解釋是完美的,謝謝。 – LeoVannini 2015-04-06 09:55:33

+0

不客氣:)高興我可以幫助一點點... – 2015-04-06 11:41:39

回答

1

你需要加入表作爲

select 
m.id, 
m.title 
from movies m 
join stars_in_movies sm on sm.movie_id = m.id 
join stars s on s.id = sm.star_id 
where s.id = {your star id to be searched} 
0
select m.title from 
stars_in_movies sim join movies m 
on m.id=sim.movie_id 
where sim.star_id = 1 

連接這個表給你的電影片名,其中明星的發揮。檢查鏈接:SQL Fiddle