2009-08-12 68 views
0

我有一个类别页面,其中我显示所有图像下一个特定类别...我也有一个下拉使用我可以根据图像的故事数量排序图像... 要做到这一点,我使用JOIN怎么把媒体和故事是两个不同的表声明...mysql加入声明

media table has mediaid,catid,userid,link 

story table has storyid,mediaid,storyheading,storycontent 

我使用这种方式JOIN语句...

SELECT count(story.id) as cnt,story.mediaid as id,media.cat_id,media.link,media.userid 
FROM story RIGHT JOIN 
media ON story.mediaid=media.mediaid where cat_id='25' group by story.mediaid order by cnt desc limit 0,8 

但我只得到有故事的图像......我想要所有的结果,即使没有特定图像的故事,我们可以显示0个故事......我们可以通过不改变表结构,只是改变SQL语句? 请帮助... -

回答

0

你需要翻转你的SQL和使用LEFT JOIN代替:

SELECT count(story.id) as cnt, media.mediaid, media.catid, media.userid, media.link 
    FROM media LEFT OUTER JOIN story ON media.mediaid = story.mediaid 
WHERE media.catid = '25' 
GROUP BY media.mediaid, media.catid, media.userid, media.link 
ORDER BY cnt DESC 
+0

感谢ü非常...^_ ^ – Sakura 2009-08-12 17:15:59

0

right join是确定的,该group by story的问题是:您想通过组图片,是不是?

尝试group by media.mediaid取而代之!

+0

感谢ü乌拉圭回合的帮助...^__^ – Sakura 2009-08-12 17:15:25