2016-11-30 95 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

是的,因为一个帖子可以有多个图片 –

相关问题