2016-11-30 148 views
0

我有以下表格:Mysql的選擇具有相同的ID(3個表)行

'blog_content'

blog_content

'blog_media'

blog_media

'blog_media_content'

| blog_id | media_id | 
======================== 
| 1  |  1  |   
| 2  |  2  | 
| 3  |  3  |  
| 3  |  4  |   

我想選擇所有blog_media.uri的地方,其中blog_media.media_id等於blog_media_content.blog_id

請幫我實現我的目標。

+0

這三個表中的INNER JOIN會給你想要的任何信息。 – 1000111

+0

SELECT uri FROM blog_media WHERE media_id IN(SELECT media_id FROM blog_media_content WHERE blog_id = 3)有什麼想法? –

回答

0

blog_mediablog_media_content之間的inner join表就足夠了。

SELECT 
bm.uri 
FROM blog_media bm 
INNER JOIN blog_media_content bmc ON bm.media_id = bmc.media_id 
WHERE bmc.blog_id =3; 

注:

如果需要從blog表中的任何其他信息,那麼你需要額外的inner join象下面這樣:

...INNER JOIN blog_table b ON bmc.blog_id = b.blog_id...

編輯:

爲了獲得所有的記錄blog_id s:

SELECT 
bm.uri 
FROM blog_media bm 
INNER JOIN blog_media_content bmc ON bm.media_id = bmc.media_id 
ORDER BY bmc.blog_id; 
+0

我可以做到嗎?:SELECT bm.uri FROM blog_media bm INNER JOIN blog_media_content bmc ON bm.media_id = bmc.media_id WHERE bmc.blog_id = bm.media_id; ? –

+0

Syntyax明智,這是正確的。但這種查詢的用途是什麼?我的意思是你想只記錄blog_id和media_id相同的記錄嗎? – 1000111

+0

是的,因爲一個帖子可以有多個圖片 –

相關問題