mysql连接语句

时间:2009-08-12 17:03:54

标签: mysql

我有一个类别页面,其中我显示特定类别下的所有图像...我还有一个下拉列表,我可以使用该下拉列表根据为该图像编写的故事数量对图像进行排序... 为了实现这一点,我使用JOIN语句coz media和story是两个不同的表...

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语句?? 请帮忙...... -

2 个答案:

答案 0 :(得分:0)

right join没问题,group by story就是问题:你想按照图片分组,不是吗?

尝试group by media.mediaid

答案 1 :(得分: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